2017-04-13 68 views
2

我有一个任务要做。用多行加载文本文件,在控制台上打印文本,将文本转换为大写,并将其保存到另一个文本文件。使用流加载和处理文件

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); 
} 

我想这样做,越简单越好,所以我试图用流格式的Java 8.我不知道如何继续这一点。一种选择是将Stream转换为List并使用它,但是它会删除行并将整行文本放在一行上。我有什么选择如何做到这一点?

回答

4

添加到文件将留给你:)

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

真的,我已经改正的顺序。 – Beri

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();