我有一项任务要做。加载包含多行的文本文件,在控制台上打印文本,将文本转换为大写,然后将其保存到另一个文本文件中。
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并使用它,但它删除行,整行文本在一行。我有什么选择如何做到这一点?
答案 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();