これが私のファイルを書き出す方法です。
BufferedReader read = new BufferedReader(new FileReader(filetoreadfrom));
FileOutputStream fileStream = new FileOutputStream(filetowriteto);
DataOutputStream dataStream = new DataOutputStream(fileStream);
String temp;
while((temp = read.readLine()) != null){
String[]arrayTemp = temp.split("\\|");
dataStream.writeInt(Integer.parseInt(arrayTemp[0]));
dataStream.writeInt(Integer.parseInt(arrayTemp[1]));
dataStream.writeUTF(arrayTemp[2]); }
それで、バイナリファイルを書き出そうとしていますが、問題なく動作しているようです。しかし、それを読み戻そうとすると、IOExceptions が発生します。
これが私のファイルを読む方法です。
DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream("data.bin")));
int one,two,eight;
String three,
while(true){
one = in.readInt();
two = in.readInt();
three = in.readUTF();}
私はデータストリームのチュートリアルページを見てきました
http://docs.oracle.com/javase/tutorial/essential/io/datastreams.html
例で私が理解していることから、EOFExceptionをキャッチすることでファイルの終わりの状態をキャッチすることが示されていますか? そして、私がAPIから見ることができるものから、それはIOExceptionのサブクラスであり、なぜ私がそれを取得しているのかを理解するのに役立ちます.
私が理解していないのは、例外を発生させずに処理する方法です。私は in.read() == -1 then break のようなことをしようとしましたが、それでも例外がスローされます。