黑马程序员技术交流社区
标题:
关于文件复制谁比较快的问题。
[打印本页]
作者:
刘源
时间:
2012-7-18 13:07
标题:
关于文件复制谁比较快的问题。
本帖最后由 刘源 于 2012-7-18 20:13 编辑
方法一:
byte[] buf = new byte[1024];
int len = 0;
while((len=fis.read(buf))!=-1)
{
fos.write(buf,0,len);
}
方法二:
String line = null;
while((line=bufr.readLine())!=null)
{
bufw.write(line);
bufw.newLine();
bufw.flush();
}
上面两种方法都是可以用来复制文件内容的,他们一个是用数组的形式,一个是SturingBuffer的形式储存数据,但他们2个谁复制比较快,底层他们都是用read()在调用。有明白人讲解下吗?一般开发用什么方式复制啊,有什么利弊。
作者:
黑马-王言龙
时间:
2012-7-18 13:23
第一种方法:适合二进制文件,如图片、音乐、视频等。
第二种方法:适合复制文本制文件。原因:一次读一行,写入,不用一字节一字节的写。
StringBuffer也是底层用数组来实现的。
作者:
张立江
时间:
2012-7-18 14:46
如果文件是纯文本文件的话,第二种比第一种快
虽然第二种底层页是调用了read()方法,但是第二种用了缓冲区(BufferedReader,BufferedWriter),这个是一种高效的输入输出格式.
但是文本不是纯文本文件(比如图片,音频,视频等)时,只能用第一种方法来读取,因为它是一个字节一个字节的读取
具体开发的时候就要看读取的是纯文本文件还是非纯文本文件了
作者:
陌花╮有意、
时间:
2012-7-18 18:44
需要区分是文本文件还是非文本文件
对于文本文件可以用缓冲流readLine(),一次一行,低层只是对字符流的封装,但效率有提升
非文本文件只能用字节流的读取方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2