/*
复制一个图片
思路:
1,用字节读取流对象和图片关联
2,用字节写入流对象创建一个图片文件,用于存储获取到的图片数据
3,通过循环读写,完成数据的存储
4,关闭资源
*/
import java.io.*;
class CopyPic
{
public static void main(String[] args)
{
FileOutputStream fos = null;
FileInputStream fis = null;
try
{
fos = new FileOutputStream("c:\\2.jpg");
fis = new FileInputStream("c:\\1.jpg");
byte[] buf = new byte[1024];
int len = 0;
while((len=fis.read(buf))!=-1)//哥们 这里注意了.你这里没写buf.没写buf就是一个字节一个字节的读取.读一个字节判断一次,是不是=-1不是就把1M的数组(没有内容的数组)写进去了.
//所以你复制的文件打开不是图片,而且比原来的大
//哥们你可害苦了我,你的目标文件小,一个字节一个字节的判断.很快就结束了,我的可是3M的图片这一个字节一个字节的判断,电脑风扇立马就嘎嘎的响起来了
{
fos.write(buf,0,len);
}
}
catch (IOException e)
{
throw new RuntimeException("复制文件失败");
}
finally
{
try
{
if(fos!=null)
fos.close();
}
catch (IOException e)
{
throw new RuntimeException("写入关闭失败");
}
try
{
if(fis!=null)
fos.close();
}
catch (IOException e)
{
throw new RuntimeException("读取关闭失败");
}
}
}
} |