使用Stream加载和处理文件

时间:2017-04-13 18:52:42

标签: java file java-8 text-files java-stream

我有一项任务要做。加载包含多行的文本文件,在控制台上打印文本,将文本转换为大写,然后将其保存到另一个文本文件中。

public static void main(String[] args) throws IOException {
    String fileName = "src/PISMENA.txt";
    Stream<String> stream = Files.lines(Paths.get(fileName));
    stream.map(String::toUpperCase).forEach(System.out::println);
}

我想尽可能简单,所以我尝试使用Stream表单java 8.我不知道如何继续使用它。一种选择是将Stream转换为List并使用它,但它删除行,整行文本在一行。我有什么选择如何做到这一点?

2 个答案:

答案 0 :(得分:4)

添加到文件将留给您:)

Files.lines(Paths.get(fileName))
   .peek(System.out::println)
   .map(String::toUpperCase)
   .forEach(line-> //*add to file*//)

答案 1 :(得分:0)

Stream<String> stream = Files.lines(Paths.get(fileName));
PrintStream output = new PrintStream(new FileOutputStream("output.txt"));
stream.map(String::toUpperCase).forEach(output::println);

// and don't forget to close
stream.close();
output.close();