黑马程序员技术交流社区
标题:
关于io的一些小问题
[打印本页]
作者:
宋超2356
时间:
2014-4-1 18:29
标题:
关于io的一些小问题
本帖最后由 宋超2356 于 2014-4-2 19:37 编辑
import java.io.*;
public class Test {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("d:/java/Person.java");
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream("d:/java/Person1.java"));
int num;
byte [] buf = new byte[1024];
/*while((num = bis.read(buf)) != -1) {
System.out.println(new String(buf,0,num));
bos.write(buf,0,num);
}
*/
while((num = fis.read(buf)) != -1) {
System.out.println(new String(buf,0,num));
}
bis.close();bos.close();//这里还有必要关闭fis么?
}
}
复制代码
注释掉的事buffered...的缓冲流复制文件,与普通的file...流有什么区别?感觉效果一样啊,嵌套buffered...的意义在哪?
作者:
osully
时间:
2014-4-1 18:38
关闭buffer的流 其实还是调用的 fis的close
buffer就是个缓冲区
有了此缓冲区就可以不写byte[] 数组了 你试试吧
作者:
Engle
时间:
2014-4-1 20:04
如果不用缓冲流的话,程序是读一个数据,写一个数据。这样在数据量大的程序中非常影响效率。
缓冲流作用是把数据先写入缓冲区,等缓冲区满了,再把数据写到文件里。这样效率就大大提高了
作者:
leon_hm
时间:
2014-4-1 20:05
BufferedInputStream bufis = new BufferedInputStream(new FileInputStream("1.mp3"));
BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream("2.mp3"));
int by =0;
while ((by=bufis.read())!=-1)
{
bufos.write(by);
}
bufos.close();
bufis.close();
复制代码
可以用read方法就不需要定义byte[] buf了。BufferedInputStream中有缓存,应该能提高效率
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2