2017-10-23 9 views
-1

.txt 파일의 출력을 어떻게 바꿀 수 있습니까? 예 :파일을 어떻게 되 돌리십니까?

입력 파일 내용 :

이것은 파일의 시작이다.

두 번째 줄.

이것은 세 번째 줄입니다.

4 번 째 줄.

파일의 끝입니다.

는 읽을 수 있어야하고 다음 파일을 인쇄 : 파일의

끝.

4 번 째 줄.

이것은 세 번째 줄입니다.

두 번째 줄.

이것은 파일의 시작 부분입니다.

import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 

public class FileCopier { 

    public static void copyCharacters() throws IOException { 
      FileReader inputStream = null; 
      FileWriter outputStream = null; 

      try { 
       inputStream = new FileReader("Motown.txt"); 
       outputStream = new FileWriter("Motown_output.txt"); 

       int c; 
       while ((c = inputStream.read()) != -1) { 
        outputStream.write(c); 
       } 
      } finally { 
       if (inputStream != null) { 
        inputStream.close(); 
       } 
       if (outputStream != null) { 
        outputStream.close(); 
       } 
      } 
     } 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     try { 
      copyCharacters(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 
+3

어떤 입력을 제공합니까? 파일에있는 내용) 및 출력은 무엇입니까? 샘플이 수행합니다. 또한 출력의 정확한 모양은 무엇입니까? – Makoto

+0

Motown.txt : 디트로이트시 동부 미시간에 모터 도시로 알려진 가장 큰 자동차 생산자 중 하나였던 지금은 무엇입니까? -이 파일은 .txt 파일입니다. –

+6

질문에이 파일을 추가하십시오. 댓글은 댓글 용입니다. 질문에 더 자세히 설명할수록 사람들이 한눈에 당신을 도울 수 있습니다. – Makoto

답변

-2

당신은

  1. 역 모음으로 각 라인을 읽을 줄
  2. 하여 입력 라인을 읽을 수 있어야 :

    내가 현재 가지고있는 코드입니다 컬렉션

여기에서 Deque를 사용하고 해당 descendingIterator를 얻습니다.

public static void copyCharacters() throws IOException { 
      FileWriter outputStream = null; 
      BufferedReader bufferedReader = null; 

      Deque<String> fileContents = new ArrayDeque<>(); 

      try { 
       outputStream = new FileWriter("motown_output.txt"); 
       bufferedReader = new BufferedReader(new FileReader("motown.txt")); 

       String line; 
       while ((line = bufferedReader.readLine()) != null) { 
        fileContents.add(line); 
       } 

       for (Iterator<String> iterator = fileContents.descendingIterator(); iterator.hasNext();) { 
        outputStream.write(iterator.next()); 
        outputStream.write("\n"); 
       } 

      } finally { 
       if (bufferedReader != null) { 
        bufferedReader.close(); 
       } 
       if (outputStream != null) { 
        outputStream.close(); 
       } 
      } 
     } 
+0

그것이 효과가있다! 감사 –