gpt4 book ai didi

JAVA - 从文件读取并写入另一个文件

转载 作者:行者123 更新时间:2023-12-01 21:43:03 25 4
gpt4 key购买 nike

这是我的代码,我无法使其正常工作,它只从第一个文本文件中获取总共 3 行中的最后一行,并且仅将其大写,我不明白为什么

    import java.util.Scanner;
import java.io.*;


public class AllCapitals {
public static void main(String[] args) {
String readLine;

String inFilePath = "/home/file.txt";
String outFilePath = "/home/newFile.txt";


try (BufferedReader bufferedReader = new BufferedReader(new FileReader(inFilePath))) {

while ((readLine = bufferedReader.readLine()) != null) {
readLine.toUpperCase();
String upperC = readLine.toUpperCase();

System.out.println(upperC);

try (Writer writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(outFilePath), "utf-8"))) {
writer.write(upperC);
}
}
} catch (IOException e) {
System.out.println("Error.");
e.printStackTrace();
}
}
}

编辑:忘了说功能。

我需要从一个普通的文本文件中读取 3 行,就像这样

    Hello.
How are you ?
Good, thank you !

输出应该全部大写,但我只得到最后一行“GOOD THANK YOU”

最佳答案

这是因为您在每次迭代中重新创建输出文件,同时从第一次读取行。在开始阅读之前创建一次输出文件,例如:

    try (BufferedReader bufferedReader = new BufferedReader(new FileReader(inFilePath));
Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFilePath), "utf-8"))
) {
while ((readLine = bufferedReader.readLine()) != null) {
String upperC = readLine.toUpperCase();
System.out.println(upperC);

writer.write(upperC);
writer.write(System.lineSeparator());
}
} catch (IOException e) {
System.out.println("Error.");
e.printStackTrace();
}

其他一些改进:

  • 删除了毫无意义的行readLine.toUpperCase();,该行什么也没做
  • 每行添加换行符,否则所有大写内容将在同一行

关于JAVA - 从文件读取并写入另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36238389/

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