黑马程序员技术交流社区

标题: 请大神帮忙分析下(io流复制图片)在线等!!! [打印本页]

作者: sean    时间: 2014-9-19 23:19
标题: 请大神帮忙分析下(io流复制图片)在线等!!!
以下代码编译运行都没问题。但是C盘的原文件图片大小为“372,933” 字节     用IO流代码复制到G盘 图片大小却变成47,604,359 字节,而且图盘也打不开                                                                                                                                                                                             (这个跨度也太大了吧)请大神帮忙看看什么问题:在线等.谢谢!!!
代码:
import java.io.*;
class Lianxi
{
        public static void main(String[]args)
        {
                FileOutputStream fos = null;
                FileInputStream fis = null;
                try
                {
                        fos = new FileOutputStream("G:\\yanshi_copy.bmp");
                        fis = new FileInputStream("C:\\yanshi.bmp");
                        //byte[] buf = new byte[fis.available()];
                        byte[] buf = new byte[1024];
                        int len = 0;
                        while((len=fis.read())!=-1)
                        {
                                fos.write(buf,0,len);
                        }
                }
                catch(IOException e)
                {
                        throw new RuntimeException("复制文件失败");
                }
                finally
                {
                        try
                        {
                                if(fis!=null)
                                        fis.close();
                        }
                        catch(IOException e)
                        {
                                new RuntimeException("读取关闭失败");
                        }
                        try
                        {
                                if(fos!=null)
                                        fos.close();
                        }
                        catch(IOException e)
                        {
                                new RuntimeException("写入关闭失败");
                        }
                }
        }
}



作者: sean    时间: 2014-9-19 23:23
大神求解
作者: sean    时间: 2014-9-19 23:28
顶上去,让大神看到
作者: 石头-剪刀    时间: 2014-9-19 23:53
嗨,哥们,你的这一句
while((len=fis.read(buf))!=-1)
                        {
                                fos.write(buf,0,len);
                        }
read()方法你没有传入参数,你改了后应该就没有问题了
作者: 石头-剪刀    时间: 2014-9-19 23:54
哥们,你看得到我的回复没有啊
作者: sean    时间: 2014-9-19 23:58
石头-剪刀 发表于 2014-9-19 23:53
嗨,哥们,你的这一句
while((len=fis.read(buf))!=-1)
                        {

太感谢了!终于可以睡了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2