对于InputStream中的read()方法,当传入的参数的值不同的时候,方法的返回值也不同
1. read(byte b[])需要传入byte数组作为参数的时候
当传入byte数组时,read方法会返回一个int型的整数,该整数读入的数据在数组中的长度
public static void main(String[] args)throws Exception{
InputStream in = new FileInputStream(new File("D:" + File.separator + "test.txt"));
byte[] b = new byte[1024];
int len = 0;
len = in.read(b);
System.out.println(len);
in.close();
}
此段代码执行完之后会输出:b数组读入的test.txt文件中的内容在b数组中的长度
2. read()不带参数的时候
read()方法不带参数的时候,将会返回该字符对应的ASCII码
public static void main(String[] args)throws Exception{
InputStream in = new FileInputStream(new File("D:" + File.separator + "test.txt"));
for(int i = 0;i < 6;i++){
int len = in.read();
System.out.println(len);
}
in.close();
}
执行结果:
45
49
50
51
52
53
这里可以看到代码执行完之后输出的是ASCII码,而不是读来的数据本身
我们要强转为byte类型放入byte数组中之后,在使用OutputStream的子类FileOutputStream的write()方法输出到文件中即可还原数据