2013-01-14 30 views
-1

可能重複:
Best way to read structured binary files with Java傳輸二進制文件(數據)在Java

我曾經是一個C程序員。在c中,如果我想從std io傳輸二進制數據(不僅僅是文本文件),我可以通過一次又一次地調用getchar()putchar()來實現,直到達到EOF。 我的問題是,這是可以做到這一點在Java相同的方式?我可以一次又一次地撥打readline()writeline()嗎?如果不是,我該怎麼辦?
謝謝!

+3

如何做一些研究,然後再來提問的時候你被卡住?至少,先做一些Google搜索。 –

+0

請編輯您的問題,以便更清楚。另外,請將代碼放入'並用另一個'關閉,例如:'putchar()'。 – 2013-01-14 19:53:12

+1

閱讀文檔。 http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html –

回答

5

不,你應該絕對不是使用任何與readLine()writeLine()調用。這些是針對文本的數據。如果您要傳輸二進制數據,則應該使用InputStreamOutputStream - 與名稱中的ReaderWriter無關。如果將二進制數據轉換爲文本,則幾乎可以保證丟失數據。

但你可以在每次只拷貝數據塊:

public static void copy(InputStream input, OutputStream output) 
    throws IOException { 
    byte[] buffer = new byte[16 * 1024]; // For example... 
    int bytesRead; 
    while ((bytesRead = input.read(buffer)) > 0) { 
    output.write(buffer, 0, bytesRead); 
    } 
} 
+0

謝謝,它有幫助 –