2016-09-30 18 views
0

正如標題所述,我試圖使用FileInputSteam逐字節讀取文件。我的代碼讀取:當文件中只有一個字節時,FileInputStream可用方法返回2

FileInputStream input = new FileInputStream(inFileName); 
System.out.println(input.available()); 

我的文件inFileName僅包含字符「±」,其應該只達到一個字節,然而,當我運行該程序時,輸出爲2

任何幫助感激。

+0

順便說一下,按照javadocs - available - 返回可讀取的剩餘字節數的估計值 –

+0

字符數和字節數是兩個不同的東西。您的操作系統報告的文件大小是多少? – GPS

回答

5

這是一個unicode字符,在這種情況下是2個字節。

http://www.fileformat.info/info/unicode/char/b1/index.htm

向下滾動到UTF-8的一部分,你可以看到每個字節的值。

如果你最終的目標是獲得從一個字節數組,它是UTF-8的字符串,那麼你可以使用new String(bytes, "UTF-8");

也有可能,這是UTF-16生成字節的字符串(這也將是2個字節),但不太常見。

相關問題