ファイル items.dat から情報を読み取り、入手可能なアイテム (数量が 0 より大きい) のみの情報 (バーコード、数量、価格) とそれに続く期待収入を含む availableItems.dat という名前の別のファイルを作成するプログラムが必要です。それらすべてのアイテムを販売することから。期待される収入は、すべてのアイテムの数量*価格の合計として測定できます...私はそうしましたが、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();
}
}
}