gpt4 book ai didi

java - BufferedWriter 不会将所有数据写入文件

转载 作者:行者123 更新时间:2023-12-02 07:54:32 25 4
gpt4 key购买 nike

所以我编写了一个程序,假设将两个 LinkedList 的内容写入格式为的文本文件

“标题行 1”

“标题行2”

“标题行3”

x1 y1

x2 y2

x3 y3

...

x1023 y1023

主要编写代码如下:

    LinkedList<Double> xVal;
LinkedList<Double> yVal;
LinkedList<String> header;
Analize test;
Scanner scan = new Scanner(System.in);
FileWriter fstream;
BufferedWriter out;

int i=1;
test = new Analize(i);
test.addData();
test.calculate();


//Writing ModY
fstream = new FileWriter("BLOCK " +i+"_ModY.txt");
out = new BufferedWriter(fstream);
header = test.getHeader();
xVal=test.getXList();
yVal=test.getYListMod();


//Write Header
out.write(header.get(0)+"_modY");out.newLine();
out.write(header.get(1));out.newLine();
out.write(header.get(2));out.newLine();

for(int j=0;j<xVal.size();j++)
{
double x=xVal.get(j);
double y=yVal.get(j);
out.write(x+"\t"+y+" "+j);out.newLine();
//test code
System.out.println(xVal.get(j)+" "+yVal.get(j)+" "+j);
//System.out.println(j);
}

真正烦人的是测试代码行: System.out.println(xVal.get(j)+""+yVal.get(j)+""+j);实际上使用 System.in 中的正确值运行了 1023 次,但该文件仅包含最多 558 次的值。

我不太确定这里发生了什么......

最佳答案

我没有看到你在任何地方调用 out.close(); 。这将为您刷新并关闭底层流。我会把它放在你的 for 循环之后。

始终确保关闭流,否则某些数据可能会卡在内存中,等待 JVM 出现并将其刷新到文件中。

关于java - BufferedWriter 不会将所有数据写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com