-1
ファイルmovie5.datはハードディスクに作成されていますが、ファイルにはデータはありません!私が 実行コードにエラーが見つかりませんでした。ファイルにバイナリデータがありません。なぜこのコードはビネリファイルにムービーデータを書き込まないのですか?
import java.nio.file.*;
import java.io.*;
public class Main
{
public static void main(String[] args)
{
DataOutputStream dos=DOS("e:\\movie5.dat");
movies[] m=movieinfo();
for (movies mm:m)
{
try {
dos.writeUTF(mm.filmname);
dos.writeInt(mm.year);
dos.writeDouble(mm.price);
}
catch (IOException e6){System.out.println("I/O write Error."); }
}
}
public static DataOutputStream DOS (String path)
{
DataOutputStream dos=null;
try{
File f1=new File(path);
FileOutputStream f2=new FileOutputStream(f1,true);
BufferedOutputStream f3=new BufferedOutputStream(f2);
dos=new DataOutputStream(f3);
}
catch (FileNotFoundException e1)
{
System.out.println("file not found.");
System.exit(0);
}
return dos;
}
public static movies[] movieinfo()
{
movies[] moviedata=new movies[3];
moviedata[0]=new movies("Gladiator",2001,14.5);
moviedata[1]=new movies("Matrix",2004,25.56);
moviedata[2]=new movies("Spider Man",2017,32.32);
return moviedata;
}
private static class movies
{
String filmname;
int year;
double price;
public movies(String filmname, int year, double price)
{
this.filmname=filmname;
this.year=year;
this.price=price;
}
}
}
あなたは 'DataOutputStream'をクローズしておらず、例外を飲み込んでいる、例外を無視しています。例外の代わりに独自のメッセージを出力します。このようなコードは書かないでください。 – EJP