Мне нужна программа, которая считывает информацию из файла items.dat, а затем создает другой файл с именем availableItems.dat, содержащий информацию (штрих-код, количество, цену) только доступные товары (с количеством более 0), за которым следует ожидаемый доход от продажи всех этих предметов. Ожидаемый доход можно измерить как сумму количества * цены для всех предметов ... Я сделал это, но есть исключение EOFException, я не знаю почему?чтение и запись в двоичных файлах java.io.EOFException
информация в файле записывается следующим образом:
77777 5 6,7 .. .. до 6 пунктов
мой код:
import java.io.*;
class items{
public static void main(String[] args) throws IOException{
File f=new File("items.dat");
FileInputStream ff=new FileInputStream(f);
DataInputStream df=new DataInputStream(ff);
int[] barcod=new int[6];
int[] quan=new int[6];
double[] price=new double[6];
int i=0;
try{
while (i<barcod.length)
{
barcod[i]=df.readInt();
quan[i]=df.readInt();
price[i]=df.readDouble();
i++;
}
File f2=new File("availableItems.dat");
FileOutputStream ff2=new FileOutputStream(f2);
DataOutputStream dou=new DataOutputStream(ff2);
int s=0;
double sumquan=0;
double sumpri=0;
while (s<6)
{
if (quan[s]!=0)
{
dou.writeInt(barcod[s]);
dou.writeInt(quan[s]);
dou.writeDouble(price[s]);
sumpri+=price[s];
sumquan+=quan[s];
}
s++;
}
dou.writeDouble(sumpri*sumquan);
}
catch(EOFException e){
System.out.println(e);
}
finally{
df.close();
}
}
}
Был ли Item.dat написан с помощью DataOutputStream (или эквивалент)? – immibis
Java не является Javascript, пожалуйста, не используйте фрагменты JavaScript для Java. –
Из вашего описания файла он вообще не выглядит двоичным. Это похоже на номера, разделенные пробелами. Это на самом деле то, что есть, или это просто иллюстративно? –