A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

以下代码编译运行都没问题。但是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("写入关闭失败");
                        }
                }
        }
}


5 个回复

倒序浏览
大神求解
回复 使用道具 举报
顶上去,让大神看到
回复 使用道具 举报
嗨,哥们,你的这一句
while((len=fis.read(buf))!=-1)
                        {
                                fos.write(buf,0,len);
                        }
read()方法你没有传入参数,你改了后应该就没有问题了
回复 使用道具 举报 1 0
哥们,你看得到我的回复没有啊
回复 使用道具 举报
石头-剪刀 发表于 2014-9-19 23:53
嗨,哥们,你的这一句
while((len=fis.read(buf))!=-1)
                        {

太感谢了!终于可以睡了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马