【发布时间】:2018-10-10 11:26:31
【问题描述】:
我想从 Map 对象写入文件。这是我的尝试。
try {
stuMap.put(student.getId(), student);
Path file = Paths.get("student.txt"); // to create the file
Files.write(file, stuMap, Charset.forName("UTF-8")); // try to save in the file
/* fileReaderWriter.createFileIn_NIO(stuMap);*/
try {
fileReaderWriter.createFileIn_NIO(stuMap);
} catch (IOException ex) {
System.out.println("file not saved");
}
return true;
} catch (Exception ex) {
System.out.println("not stored in Map");
return false;
}
我该如何进行这项工作?
【问题讨论】:
-
如果您的 Student 类具有正确的 toString 方法,您可以毫无问题地写入文件。这段代码不好。打印堆栈跟踪或传递异常;不要向 System.out 写入消息。这比堆栈跟踪信息少。返回 true 或 false 并不能帮助用户处理问题。
-
有六种不同的方法可以将对象图放到磁盘上。看序列化。查看xml格式。看json格式。等等。这个问题太宽泛了,我们无法回答。
-
文件应该是人类可读的吗?你的地图可以序列化吗?
-
应该可以读取文件并取回相同的对象吗?是否可以用其他程序语言读取文件?问题中没有提到这些事情的事实导致它过于宽泛。
-
简单:您首先必须明确您的要求。您可以将各种内容写入文件。不管你做什么都是好的。如果您想阅读那里写的内容,它只会变得棘手。所以这是你必须首先澄清的事情!