【问题标题】:What is the opposite of PrintWriter class?PrintWriter 类的对立面是什么?
【发布时间】:2015-09-23 21:22:20
【问题描述】:

Java 中有一个名为 PrintWriter 的类,它可以将字符串输出到文件中,我发现它非常易于使用,因为我只想打印字符串。但是现在我想获取这个文件字符串并通过代码替换几个单词,我该如何实现呢?是否有任何 PrintReader 类或类似的?

【问题讨论】:

  • FileReader,从BufferedReader的角度使用
  • Files.lines?你的问题并不完全清楚。并不是说您不能替换文件中的单词而不用替换写入一个新文件然后替换该文件。好吧,你可以——但这真的很棘手。
  • @NajiKadri DontPrintReader?开玩笑。 java doc 是你的朋友。 DontBeLazy.

标签: java file class file-io io


【解决方案1】:

对于较小的文件,您可以使用 Files 读取和写入所有文件:

Path path = Paths.get("C:/Data/text.txt");
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);

Files.write(lines, StandardCharsets.UTF_8);

上面使用了 Path 类,它是 File 的更一般的继承者。

还指定了一个字符集,这里是UTF-8,所以可以组合各种Unicode脚本,特殊符号。

为了让 Windows NotePad 识别 UTF-8,您可以添加一个 BOM 作为文件的第一个字符(零宽度空格):

lines.put(0, "\uFEFF", lines.get(0));

(当然要多加注意。)

【讨论】:

    【解决方案2】:

    没有任何东西叫做 PrintReader。 BufferedReader 类几乎可以满足您的需求。

    http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html

    【讨论】:

      【解决方案3】:

      也许您正在寻找类似FileReader 的东西?

      【讨论】:

        【解决方案4】:

        您可能正在寻找FileReader。由于您正在尝试读取文件,也许您应该看看reading-a-text-file-in-java

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-03-19
          • 2013-06-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多