2013-02-06 3 views
-1

BufferedReader 클래스를 사용하여 큰 파일의 내용을 한 줄씩 읽습니다.파일 읽기, 현재 위치 가져 오기 및 뒤로 읽는 중

어커런스가 발견되면 어떻게 알 수 있습니까? 그런 다음 어떻게 그 위치에서부터 파일을 역으로 읽을 수 있습니까?

나는 인터넷에서 실제로 일관된 해결책을 찾았지만 찾지 못했습니다.

+0

지금까지 해보신 것은 무엇입니까? 코드를 추가 할 수 있습니까? 이 [metaSO 질문] (http://meta.stackexchange.com/questions/18584/how-to-ask-a-smart-question) 및 [Jon Skeet : 코딩 블로그] (http://msmvps.com/ blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx)를 작성하고 좋은 질문을하십시오. – Yaroslav

+0

@Yaroslav : 나는 그 질문이 충분히 명확하다고 믿는다 : 나는 파일을 거꾸로 읽는 법을 모른다. – Pierre

+0

SO는 코드 작성 서비스가 아니며 귀하가 찾고있는 서비스입니다. 나는 링크를 지적했고, 나는 [똑똑한 질문을하는 법] (http://meta.stackexchange.com/a/25128/192104)을 지금 반복하고있다. 코딩 질문입니다. 그래서 당신이 무언가를 시도했거나, 그것이 틀렸다면 중요하지 않습니다. 적어도 "나는 코드를 많이 검색했습니다."이외의 노력을 보여줍니다. 당신은 프로그래머이고 당신은 문제를 해결하기로되어 있습니다. 네, 여기에서 도움을 찾을 수는 있지만 완전한 해결책은 아닙니다. – Yaroslav

답변

1
public static void main(String[] args) throws Exception { 
    FileReader fr = new FileReader("sample.txt"); 
    BufferedReader reader = new BufferedReader(fr); 
    String line = ""; 

    ArrayList<String> linee = new ArrayList<String>(); 

    while ((line = reader.readLine()) != null) { 
     if (line.equals("bb")) 
      break; 
     linee.add(line); 

    } 

    reader.close(); 
    for (int i = linee.size() - 1; i >= 0; i--) 
     System.out.println(linee.get(i)); 

} 
+0

답변 해 주셔서 감사합니다. 이 솔루션은 2Gb 파일을 처리 할 때 성능 문제가 없다고 생각합니까? – Pierre

+0

@ 피에르 확실하지 않습니다. –

+1

그리고 또 다시, 당신은 유용한 대답을 가지고 있습니다. 당신이 그것을 테스트하고 그것이 당신의 문제에 대답하는지보아야합니다. 그렇지 않은 경우이 코드를 기반으로 새 코드를 작성하십시오. 여러 번 시도해도 여전히 문제가 해결되지 않으면 새로운 질문을 열고 코드를 추가하고 시도한 내용을 설명한 다음 더 많은 답변을 얻으십시오. – Yaroslav

관련 문제