java - 读取文件,替换字符串并创建一个包含所有内容的新文件

标签 java

我正在尝试替换 ?-在我的文本文档中,但只是 ArrayList<String>正在写入新文件,而没有旧文件的所有行。我该如何解决这个问题?

File file = new File("D:\\hl_sv\\L09MF.txt");

ArrayList<String> lns = new ArrayList<String>();
Scanner scanner;
try {

    scanner = new Scanner(file);

    int lineNum = 0;
    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        lineNum++;
        if (line.contains("?")) {
            line = line.replace("?", "-");
            lns.add(line);

            // System.out.println("I found it on line " + lineNum);
        }
    }
    lines.clear();
    lines = lns;
    System.out.println("Test: " + lines);

    FileWriter writer;
    try {
        writer = new FileWriter("D:\\hl_sv\\L09MF2.txt");
        for (String str : lines) {
            writer.write(str);
        }

        writer.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

最佳答案

我不明白为什么您首先要将存储在List中。我会在阅读时执行转换和打印。您不需要测试 ? 是否存在(如果它不存在,则替换不会改变任何内容)。而且,我还会使用 try-with-resources 。类似的东西

File file = new File("D:\\hl_sv\\L09MF.txt");
try (PrintWriter writer = new PrintWriter("D:\\hl_sv\\L09MF2.txt");
        Scanner scanner = new Scanner(file)) {
    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        writer.println(line.replace('?', '-'));
    }
} catch (Exception e) {
    e.printStackTrace();
}

关于java - 读取文件,替换字符串并创建一个包含所有内容的新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30631828/

相关文章:

java - 森托斯 6 : Java Application not Logging to var/log

java - mongoDB将特定数据添加到数据库副本

java - 方法本地内部类与内部类

java - 将 Gradle Tomcat 配置转换为 Maven

java - 计算队列中的消息(以编程方式)-Jboss 7

java - MapReduce 作业 : weird output?

java - Maven 配置文件属性不是 "overriding"

java - api低于26的设备如何使用base 64?

java - Java 无法读取从 Windows CA 存储导出的证书

java - 何时以 .<ClassName>methodName() 的形式在 Java 中使用带有方法调用的菱形运算符?