FileInputStream,文件输入流,此流读取的也是字节,因此读取到的数据都会被认为是byte类型的,对于字母以及数字而言,读取到的是相对应的ASCII码编号,由于JAVA对汉字的默认编码是UTF-8,此种编码对汉字是的编码长度是16位,即2字节,对汉字会读取为2个byte数值。此种输入把文本中的数据统一作为字节数据处理的,如果存储double值,3445.889,那么会看成8个byte值。
代码范例:
try {
InputStream input = new FileInputStream("./src/com/io/test.txt");
int data = input.read();
while(-1 != data){
System.out.println(data);
data = input.read();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
如果test.txt中存放的文本是“1a啊”,得到的输出结果是:
49
97
176
161
注意:
Unicode编码对所有的字符都采用了2字节的编码格式,若存储ACSII字符(7位)就会存在浪费存储空间的问题,UTF-8编码是Unicod的变体,它对字母以及数字采用1位,而汉字使用2-3字节,通常是2字节。