Java - 将树状图写入文本文件
Java - Writing a treemap to a text file
我有一个名为 'sortMap' 的树状图,其中包含一些具有相应值的键。我正在尝试将树状图写入文本文件,如下所示。
String aggFileName = "agg-"+String.valueOf("06.txt");
FileWriter fstream = new FileWriter(aggFileName);
BufferedWriter out = new BufferedWriter(fstream);
for (Map.Entry<String, String> entry : sortMap.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); //this statement prints out my keys and values
out.write(entry.getKey() + "\t" + entry.getValue());
System.out.println("Done");
我面临的问题是我最终得到一个空白文件,尽管我代码中的打印语句显示我正在成功迭代树状图。我可能做错了什么?
写入文件时,需要在所有写入操作完成后刷新并关闭文件。大多数情况下只需调用 close() 就足够了,但是如果您希望每次迭代结束时文件中的更改可用,您需要对 IO 对象调用 flush() 函数。
大多数 IO 对象都有一个临时缓冲区 space 用于存储写入它们的任何值。当这个缓冲区被刷新时,他们将他们的内容写入他们正在使用的流。您的代码应如下所示:
String aggFileName = "agg-"+String.valueOf("06.txt");
FileWriter fstream = new FileWriter(aggFileName);
BufferedWriter out = new BufferedWriter(fstream);
for (Map.Entry<String, String> entry : sortMap.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); //this statement prints out my keys and values
out.write(entry.getKey() + "\t" + entry.getValue());
System.out.println("Done");
out.flush(); // Flush the buffer and write all changes to the disk
}
out.close(); // Close the file
我有一个名为 'sortMap' 的树状图,其中包含一些具有相应值的键。我正在尝试将树状图写入文本文件,如下所示。
String aggFileName = "agg-"+String.valueOf("06.txt");
FileWriter fstream = new FileWriter(aggFileName);
BufferedWriter out = new BufferedWriter(fstream);
for (Map.Entry<String, String> entry : sortMap.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); //this statement prints out my keys and values
out.write(entry.getKey() + "\t" + entry.getValue());
System.out.println("Done");
我面临的问题是我最终得到一个空白文件,尽管我代码中的打印语句显示我正在成功迭代树状图。我可能做错了什么?
写入文件时,需要在所有写入操作完成后刷新并关闭文件。大多数情况下只需调用 close() 就足够了,但是如果您希望每次迭代结束时文件中的更改可用,您需要对 IO 对象调用 flush() 函数。
大多数 IO 对象都有一个临时缓冲区 space 用于存储写入它们的任何值。当这个缓冲区被刷新时,他们将他们的内容写入他们正在使用的流。您的代码应如下所示:
String aggFileName = "agg-"+String.valueOf("06.txt");
FileWriter fstream = new FileWriter(aggFileName);
BufferedWriter out = new BufferedWriter(fstream);
for (Map.Entry<String, String> entry : sortMap.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); //this statement prints out my keys and values
out.write(entry.getKey() + "\t" + entry.getValue());
System.out.println("Done");
out.flush(); // Flush the buffer and write all changes to the disk
}
out.close(); // Close the file