2017-04-13 10 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); 
} 

나는 그래서 내가 그 계속하는 방법을 모르는 스트림 형태의 자바 (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();