我正在尝试将数据写入二进制文件并且遇到困难。当我运行此方法时,我没有得到任何输出到该文件。另外,在编写“Date”对象时,我似乎无法找到将其作为参数的write方法。该对象由int月,日和年组成。如何正确地将其写入二进制文件?
此外,“文件”也适用于二进制文件吗?我之前只使用过常规的.txt文件,我不确定它是否可以在这种情况下以相同的方式使用。谢谢!
这是我的写法:
private void writeBinary(){
//String fileName = getUserInput();
String fileTest = "BinaryMonster.bin";
File file = new File(fileTest);
DataOutputStream out;
try{
out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file, true)));
if(!(file.exists())){
file.createNewFile();
System.out.println("New file created...");
}
for(int i = 0; i < monsterAttacks.size(); i++){
out.writeInt(monsterAttacks.get(i).getID());
out.write(monsterAttacks.get(i).getDate()); //getting error
out.writeUTF(monsterAttacks.get(i).getName() + monsterAttacks.get(i).getLocation() + monsterAttacks.get(i).getReporter());
}
} catch(IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
由于您使用DataOutputStream将整个日期对象写入文件,因此不会出错。
以String的形式将其写入文件。会更好。
out.writeUTF(monsterAttacks.get(i).getDate().toString());
但是如果你想将整个对象保存到文件中,那么你需要使用 ObjectOutputStream 将整个序列化对象写入文件。
这是更好地刷新和关闭文件的方法。
out.flush();
out.close();