本帖最后由 杜成龙 于 2013-10-1 09:30 编辑
下面的代码是使用字节流来复制一个图片:- import java.io.*;
- class CopyDemo2
- {
- public static void main(String[] args)
- {
- FileInputStream fis=null;
- FileOutputStream fos=null;
- try
- {
- //创建读取流对象,关联要被复制的图片
- fis=new FileInputStream("1.jpg");
- //创建写入流对象,创建复制生成图片的名称
- fos=new FileOutputStream("1.copy_jpg");
- int len=0;
- //创建字节数组
- byte[] buf=new byte[1024];
- //向数组中读入数据并判断
- while((len=fis.read(buf))!=-1)
- {
- //把数组中的数据写出
- fos.write(buf);
- }
- }
- catch (IOException e)
- {
- throw new RuntimeException("复制失败");
- }
- finally
- {
- if(fis!=null)
- try
- {
- //关闭流资源
- fis.close();
- }
- catch (IOException e)
- {
- throw new RuntimeException("关闭失败");
- }
- if(fos!=null)
- try
- {
- //关闭流资源
- fos.close();
- }
- catch (IOException e)
- {
- throw new RuntimeException("关闭失败");
- }
- }
- }
- }
复制代码 程序中有这几行代码:
byte[] buf=new byte[1024];
//向数组中读入数据并判断
while((len=fis.read(buf))!=-1)
{
//把数组中的数据写出
fos.write(buf);
}
这里写的是fos.write(buf);而不是fos.write(buf,0,len);为什么还是能复制出正确的图片呢?
|
|