2013-05-09 4 views
0

Java에서 파일 I/O를 연습하면서 주어진 레코드 ID와 연결된 레코드 데이터를 찾는 메소드를 다시 작성해야하는 과제가 발생했습니다. 자, 내가 말하고있는 방법은 BufferedReader에 래핑 된 FileReader를 사용하여 문자를 읽는 것입니다. 이상하게도, 할당 자체는 BufferedStreamReader (?)를 사용하는 것이 파일에서 문자를 검색하는 가장 효율적인 방법이 아닐 수도 있음을 암시합니다. 이 메서드는 BufferedStreamReader 대신 BufferedReader가 포함되어 있다는 점을 감안할 때 훨씬 더 혼란 스럽습니다.파일에서 문자를 읽는 가장 효율적인 방법은 무엇입니까?

내 질문에, FileReader에 대한 BufferedReader 래퍼를 사용하고 있지 않습니다. 이미 파일에서 문자를 읽는 가장 효율적인 방법입니다.

편집합니다 BufferedStreamReader의 할당 회담이 아닌 BufferedInputStream을가

+0

가능한 중복 [메모리에로드 된 파일에 문자를 추가하는 가장 빠른/가장 효율적인 방법은 무엇?] (http://stackoverflow.com/questions/10268654/what-is-the-quickest -most-efficient-way-to-append-a-file-loaded-into) – wchargin

답변

-1

ReaderInputStream의 문자를 읽습니다. 따라서 실제 파일 시스템 액세스 (여기서는 BufferedInputStream)를 버퍼링하는 것이 가장 좋을 수 있습니다. 그 이유는 속도가 느려질 수 있기 때문입니다.

0

나는 BufferedStreamReader를 건너 가지 않았다. 그러나 BufferedReader를 사용하여 문자를 읽었을 것이다. 먼저 String으로, 그리고 나서 문자로 문자를 읽는다. 의

  FileInputStream fs = new FileInputStream(filename); 
      BufferedReader br = new BufferedReader(new InputStreamReader(fs)); 
      for (int j = 0; j < 0; j++) {//The the first Line 
      String str = br.readLine().trim(); 
      char[] chars = str.toCharArray(); 
      String first = String.valueOf(chars[0]);//The first character 
      String second = String.valueOf(chars[1]);//The second 

      } 
+0

그래서 fileReader를 FileInputStream으로 대체 하시겠습니까? – Anubis

+0

그것은 InputStreamReader입니다. 이 파일은 많은 파일이 있더라도 작동합니다. – ErrorNotFoundException

관련 문제