写入文本文件问题Java

时间:2016-04-21 18:50:46

标签: java io bufferedreader printwriter

我正在编写一个函数来检查文件 CQ.txt 是否存在,如果存在,则从中读取。我一直遇到一个问题,我在while循环之外声明了await client.ExecuteStoredProcedureAsync<DeviceSignal>( UriFactory.CreateStoredProcedureUri("db", "coll", "SetLatestStateAcrossReadings"), new RequestOptions { PartitionKey = new PartitionKey("XMS-001") }, sprocsParams); 。在应用程序的后面,它应该写入问题1:正确或问题2:正确的文件。

但是,事实并非如此。它会创建文本文件,但是当我检查它时,它会显示为空。

以下是代码,提前谢谢:

printwriter

2 个答案:

答案 0 :(得分:0)

你应该致电&#39;写&#39;关于BufferedWriter的方法,以及稍后关闭&#39;它。这是一个例子:

How to Write text file Java

答案 1 :(得分:0)

BufferedWriter 顾名思义缓冲写入文件。对BufferedWriter的任何写操作都将写入内存缓冲区而不是直接写入文件。

这样做是为了提高效率,以节省IO浪费的CPU时间。

每次调用bufferedWriter.write时,它都会将数据附加到缓冲区,只有当Buffer超过阈值时才将缓冲区数据写入文件,无论是默认值还是BufferedWriter(FileWriter,BufferSize)构造函数提供的。

建议刷新编写器并在将所有数据写入bufferedWriter后关闭它。

理想情况下,示例代码看起来像

Writer DB = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("CQ.txt"), "utf-8"));

DB.write("Dummy Data1 ");
DB.write("Dummy Data2");

DB.flush();
DB.close();

关闭并刷新后,您应该能够在文件中看到所有数据。