gpt4 book ai didi

java - 使用java从文件读取并操作然后写入另一个文件?

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:08 25 4
gpt4 key购买 nike

我有数据文件“ReadFile1.txt”。我想从 ReadFile1.txt 读取每个数据并操作这些数据,然后将结果写入另一个文件“WriteFile2.txt”中。这是我的功能。问题是它只读取第二个、第四个等,并且只写入第二个结果。这段代码有什么问题?感谢您的帮助。

public void doManipulate() throws NumberFormatException, IOException {
int multiple = 10;

try {
FileInputStream file = new FileInputStream("ReadFile1.txt");
InputStreamReader input = new InputStreamReader(file);
BufferedReader reader = new BufferedReader(input);

String data1;
while ((data1 = reader.readLine()) != null) {

int data2 = 0;
data1 = reader.readLine();

data2 = Integer.parseInt(data1);
int compressedFrames = data2*multiple;


File file2 = new File("WriteFile2.txt");
FileWriter writer = new FileWriter(file2);

writer.write(String.valueOf(compressedFrames) + "\n");


writer.flush();

writer.close();

}
reader.close();


} catch (IOException e) {
e.printStackTrace();
}


}

最佳答案

对于 while 循环的每次迭代,您都会调用 reader.readLine() 两次 - 第一次是在循环声明中,它读取每个奇数行,第二次只是向下几行 (data1 = reader.readLine();)。在您有机会解析它之前,第二个调用会清除第一个调用所读取的任何内容。删除第二个调用应该可以解决“每隔一行”的问题。

另一个问题是,您要在 while 循环的每次迭代中关闭编写器 - 在 while 循环完成之前不要关闭编写器,否则程序关闭后,输出文件中将仅包含第一个解析的数据元素。

关于java - 使用java从文件读取并操作然后写入另一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40139145/

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