2012-01-10 56 views
0

JavaのBufferedReaderを使用して90kbのファイル(明らかに約90,000バイト)を読みたいのですが、61バイト後に停止します。ファイルは問題なく、HexEditorを使ってチェックしました。BufferedReaderは61バイトだけを読み込みます

private ArrayList<byte[]> readAsBytes(String dir, String filename, int lineCount) { 
    /** Read file as byte*/ 
    ArrayList<byte[]> outputArr = new ArrayList<byte[]>(); 
    try { 
     InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream (dir+filename)); 
     BufferedReader reader = new BufferedReader(inputStreamReader); 

     if (lineCount == -1) { 
      String buf = ""; 
      buf = reader.readLine(); 
       if (buf != null) { 
        outputArr.add(buf.getBytes()); 
       } 
      } 
     else { 
      for (int i = 0; i < lineCount; i++) { 
       String buf = reader.readLine(); 
       if (buf != null) { 
        outputArr.add(buf.getBytes()); 
       } 
       else continue; 
      } 
     } 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

誰でも手助けできますか?おそらくちょっとした間違いでしょうが、疲れ始めました...

+3

なぜバイトが欲しいのですか?単にバッファリングされたストリームを使用するだけではありません。 – bmargulies

+2

'-1'か' 1'の 'lineCount'を渡していると思います。 –

+0

あなたはどのラインカウント値を渡していますか? – jtahlborn

答えて

1

代わりにBufferedReaderはかなりうまくいっています。このクラスが存在することを完全に忘れています。

関連する問題