将一个图片进行复制
思路:
从硬盘读取文件流到程序,再从程序中输出流到目标文件
不使用字节缓冲流
代码未运行前:(图片还未进行复制)
package liu;
import java.io.*;
public class TuPianFuZhi {
public static void main(String[] args)throws IOException {
File f1 = new File("c:\\javas\\QQ图片.jpg");
File f2 = new File("c:\\javas\\kk\\QQ图片.jpg");
InputStream is = new FileInputStream(f1);//输入流
FileOutputStream fos = new FileOutputStream(f2);//输出流
byte[] b=new byte[1024];
int temp=0;
long begin = System.currentTimeMillis();
while((temp=is.read(b))!=-1)
fos.write(b,0,temp);
long end = System.currentTimeMillis();
System.out.print(end-begin);
is.close();
fos.close();
}
}
运行后:(图片进行了拷贝)
使用字节缓冲流:
代码未运行前:(图片未进行拷贝)
package liu;
import java.io.*;
public class ZiJieHuanCongLiu {
public static void main(String[] args)throws IOException {
File f1 = new File("c:\\javas\\QQ图片.jpg");
File f2 = new File("c:\\javas\\kk\\PPD\\QQ图片.jpg");
InputStream is = new FileInputStream(f1);//输入流
FileOutputStream fos = new FileOutputStream(f2);//输出流
BufferedInputStream bis = new BufferedInputStream(is);
BufferedOutputStream bos = new BufferedOutputStream(fos);
int temp=0;
long begin = System.currentTimeMillis();
while((temp=bis.read())!=-1) //利用缓冲区进行,这个地方并不是一个一个字节的读,相当于系统自动给出的数组,以数组的形式进行读
bos.write(temp);
long end = System.currentTimeMillis();
System.out.print(end-begin);
bis.close();
bos.close();
}
}
代码运行后:(图片进行了复制)