2013-04-09 2 views
2

텍스트 파일의 행 수를 계산 한 다음 파일을 읽는 특정 방법이 있습니다. 내가 수행중인 작업은 파일의 행 수를 계산하는 것입니다. read.nextLine()을 실행 한 다음 버퍼를 다시 설정하고 파일의 시작 부분에서 다시 읽습니다. 나는이 StringBuffer를 그냥 잘못Java BufferedReader, 판독기 재설정

public void ReadFile() throws IOException{ 
try{ 
    FileReader fr = new FileReader(path); 
    BufferedReader read = new BufferedReader(fr); 
    int numberOfLines=0; 
    while(read.readLine()!= null) 
    { 
     numberOfLines++; // Getting the number of lines 


    } 

    read.reset(); 
    System.out.println(numberOfLines + ": is the no of lines"); 
    baseString.append(read.readLine()); 
    baseString.append(read.readLine()); 
    baseString.append(read.readLine()); 
    System.out.println(baseString); 
} 
catch(IOException e){ 
     e.printStackTrace(); 
} 
} 

기본 문자열을 뭐하는 거지 확실하지 않다

private StringBuffer baseString = new StringBuffer(); 
내가 명시 적으로
+2

정확히 무엇이 문제입니까? 그리고 baseString은 무엇입니까? 선언 된 곳은 어디입니까? – giorashc

+1

먼저 줄 수를 얻고 파일을 읽어야하는 이유가 있습니까? 그것을 읽는 동안 줄의 수를 셀 수 있습니까? –

+0

스트림을 표시해야합니다. – Maroun

답변

1

바와 같이 here파일을입니다 언급

특정 작업을 수행 할 수를 필요

BufferedReader 순차적으로 읽으므로 BufferedReader reset의 파일 시작 부분으로 돌아갈 수 없습니다.

,210

당신은 당신은 스트림에 mark()를 호출 할 필요가 FileReaderBufferedReader

또는

사용을 RandomAccessFile

1

을 새로 만들어야합니다. Reader.reset()은 스트림이 이전에 표시되지 않은 경우 작동하지 않을 수 있습니다. BufferedReader 구현은 특히 reset()의 구현은 이전 표시로 돌아가는 것으로 문서화됩니다.

+0

이 작동하지 않습니다. [this] (http://stackoverflow.com/questions/262618/java-bufferedreader-back-to-the-top-of-a-text-file) – Anirudha

관련 문제