2017-04-13 150 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();