我有一些存储数据的基本类:
class Item implements java.io.Serializable {
String this.data = "";
public void saveData(String data) {
this.data = data;
}
public String getData() {
return this.data;
}
}
另一个类中的一个函数,应该将 Item 实例保存到文件中:
private static void saveItemToFile(File folder, Item item) throws IOException{
FileOutputStream fos = new FileOutputStream(
folder.getAbsolutePath() + item.getData() + ".obj");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(item);
oos.close();
}
测试代码:
Item itm = new Item();
itm.saveData("String data here");
File folder = new File(System.getProperty("user.home") + "/.CDDB");
saveItemToFile(folder, itm);
但是这段代码不起作用。没有引发任何错误或异常,但它只是不在指定文件夹中创建文件。我的错误是什么?
最佳答案
您的目标路径是通过将文件名添加到不带路径分隔符的目录路径来构建的:
folder.getAbsolutePath() + item.getName() + ".obj"
所以你应该有一个名为[USER_HOME]/.CDDB[item name].obj
最好直接使用 File
对象:
private static void saveItemToFile(File folder, Item item) throws IOException {
File file = new File(folder, item.getName() + ".obj");
try (ObjectOutputStream oos =
new ObjectOutputStream(new FileOutputStream(file))) {
oos.writeObject(item);
}
}
关于java - 将对象序列化到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20474979/