2012-01-10 133 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 2012-01-10 16:52:19

+2

我會猜測你正在傳入一個'line',它是'-1'或'1'。 – 2012-01-10 16:59:29

+0

你通過什麼linecount價值? – jtahlborn 2012-01-10 17:00:27

回答

1

BufferInputStream而不是BufferedReader做得很好。完全忘記了這個課程的存在。

相關問題