通过文件IO操作读取一个字节

时间:2013-04-11 05:57:53

标签: java io

FileInputStream的read方法每次读取1个字节,但它正在读取文件中的字符,因为java中的字符大小为(16 bit-2 Bytes)。是因为read方法是原生的,它会转换为8位吗?

1 个答案:

答案 0 :(得分:2)

read读者的FileInputStream方法会返回int(相当于byte),而不是字符。将结果转换为角色是你的责任。

由于FileInputStream的javadoc建议:“为了读取字符流,请考虑使用FileReader”。

对字符进行编码的字节数取决于文件的编码。例如,如果文件使用ASCII编码,则每个字节都是一个字符,但如果您的文件以UTF-8编码,则字符为1,2,3或4个字节。

如果您想了解有关编码的更多信息,建议您阅读以下文章:The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)