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

标签 java file io

这是我的代码,我无法使其正常工作,它只从第一个文本文件中获取总共 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/

相关文章:

c - read() 无法正常工作

基于 Web 的 CSV 导出的 Java IO 异常

java - Hibernate 打开一堆与 MySQL 的连接

无法将正确的文件目录输出到带有 .cFileName 的链接列表

html - 如何在移动设备上测试 PC 上的 HTML/CSS 文件

c - 在 C 中读取文件的最佳缓冲区大小

java - ArrayList trimtosize 不工作 android

java - 每当我的 Android AlertDialog 加载、应用程序崩溃时,如何修复错误

java - 时区结果因 systimestamp 而异

Node.js 原生文件上传表单