课程
/后端开发
/Java
/文件传输基础——Java IO流
用Buffer方法
int c;
while((c=bis.read())!=-1){
bos.write(c);
bos.flush();
}
中是怎么把srcFile中的数据写入到destFile中的?
2016-12-15
源自:文件传输基础——Java IO流 4-5
正在回答
此处的read()方法返回的是一个字节,那为什么定义的是int c 呢?不应该是byte c么?有老铁回答下么?谢谢!!
linhbo
qwertyuioplkjh
你说的c代表一个长度,是FileInputStream中的read()方法,
read(byte[] b, int off, int len) 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
此时返回的c是读入缓冲区的字节总数,也就是你指的长度了。
你可以查看inputstream的read()方法
read() 从输入流中读取数据的下一个字节
c是一个byte
更直观一点的话,你可以通过打印c并且通过对c被写入的次数计数来看
int c; int count=0; while((c = bis.read())!= -1){ System.out.println(c); count++; bos.write(c); bos.flush(); } System.out.println("c被写入了"+count+"次");
qq_noheartnoswe_04385033 提问者
qq_3_16 回复 qq_noheartnoswe_04385033 提问者
c=bis.read()来读取,bos.write(c)将要写入的c放入缓冲区,bos.flush()刷新缓冲区,也将c写入文件中了
举报
为您介绍IO流的使用,以及对象的序列化和反序列化的内容
2 回答read(buffer,0,buffer.length); 和 read(buffer);的问题
3 回答调用student的tostring()方法
1 回答File类有哪些常用方法
4 回答FileOutputStream中的flush方法的作用?
2 回答关于ObjectOutPutStream对象oos在调用writeObject(Student s)方法如何去调用Student重写的writeObject(ObjectOutPutStream oos)方法