2016-09-30 17 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个字节),但不太常见。

相关问题