2012-04-27 4 views
2

선을 포함하는 파일을 가져오고 있습니다. 순차적으로 꼬리 부분을 출력하고 순서의 머리 부분을 출력하여이 파일을 뒤집어 쓰고 싶습니다. BufferedReader를 사용하여이 작업을 수행 할 수 있습니까? 아니면 먼저이 줄을 목록으로 가져와야합니까? 나는 재귀로 그것을해야만한다.BufferedReader를 사용하여 파일의 각 줄을 뒤집을 수 있습니까?

그래서 예를 들어, 나는이 포함 된 파일이 다음

 
Mark 
Is 
Name 
My 
Hi 

은 내가 재귀를 만들었습니다 생각 :

 
Hi 
My 
Name 
Is 
Mark 

나는 다른 파일에 역순으로 출력을 싶습니다 메서드를 올바르게 컴파일하지만 프로그램을 실행 한 후에는 출력 파일이 비어 있습니다.

public void Reverse(BufferedReader br, PrintWriter pw) { 
    try { 
     String headLine = br.readLine(); 
     if (headLine != null) { 
      Reverse(br, pw); 
      pw.println(br.readLine()); 
     } 
     pw.println(headLine);  
    } //try 
+0

정확하게 물어 본 것을 이해할 수 있도록 예제를 제공해 줄 수 있습니까? :) –

+0

@Vakimshaar above – AkshaiShah

+1

숙제 인 경우 –

답변

2

여기가

재귀 해결책 재귀를 사용되어야한다 :

  1. 파일로부터 판독 한 라인;
  2. 파일의 나머지 부분을 반복적으로 뒤집습니다.
  3. 이 이후 1

숙제입니다 단계에서 읽어 줄을 쓰기, 내가 실제 자바 코드로이 번역하는 방법을 알아 내기 위해 당신에게 맡겨.

+0

재귀를 사용하고 있어야합니다 :) – AkshaiShah

+0

감사합니다. 나는 올바른 생각을 가지고 있다고 생각합니다. 꼬리 선을 재귀 적으로 읽는 방법을 확실히 모릅니다. 이것은 내가 가지고있는 코드입니다 :'String headLine = input.readLine(); 문자열 currentLine; if (headLine! = null) { 역방향 (입력, 출력); \t output.println (currentLine); } // output.println (headLine); ' – AkshaiShah

+0

@ akshai5050 : 올바른 아이디어를 얻었습니다. 나는 당신이 어려움을 겪고있는 것이 정확히 무엇인지를 잘 모르겠다. – NPE

0

모든 것을 읽어 들여 LinkedList으로 만들고 재귀를 던지십시오. 단, Collection Framework는 이러한 종류의 작업에 매우 성가신 일치입니다.

1

솔직히 해결책을 제시하는 대신 머리와 꼬리의 관점에서 생각하고 싶지 않을 것입니다. 줄의 관점에서 생각한 다음 this SO question에 대한 답변과 토론을 읽어보십시오. 동일한 기술을 적용 할 수 있습니다.

관련 문제