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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陌路行者 中级黑马   /  2013-7-8 18:55  /  1721 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陌路行者 于 2013-7-8 20:28 编辑
  1. import java.io.*;
  2. class CopyPic
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 FileOutputStream fos = null;
  7.                 FileInputStream fis = null;
  8.                 BufferedOutputStream bufos = null;
  9.                 BufferedInputStream bufis = null;
  10.                 try
  11.                 {
  12.                         bufis = new BufferedInputStream(new FileInputStream("1.jpg"));
  13.                         bufos = new BufferedOutputStream(new FileOutputStream("2.jpg"));
  14.                         int by = 0;
  15.                         while((by=bufis.read())!=-1)
  16.                         {
  17.                                 bufos.write(by);
  18.                         }
  19.                         //byte[] chs = new byte[1024];
  20.                         //int len =0;
  21.                         //while((len=fis.read(chs))!=-1)
  22.                         //{
  23.                                 //fos.write(chs,0,len);
  24.                         //}

  25.                 }
  26.                 catch (IOException e)
  27.                 {
  28.                         throw new RuntimeException("读写文件失败");
  29.                 }
  30.                 finally
  31.                 {
  32.                         try
  33.                         {
  34.                                 fis.close();
  35.                         }
  36.                         catch (IOException e)
  37.                         {
  38.                                 throw new RuntimeException("读取文件关闭失败");
  39.                         }
  40.                         try
  41.                         {
  42.                                 fis.close();
  43.                         }
  44.                         catch (IOException e)
  45.                         {
  46.                                 throw new RuntimeException("写入文件关闭失败");
  47.                         }
  48.                 }
  49.         }
  50. }
复制代码
为什么会丢失数据

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

13 个回复

倒序浏览
你的fis和fos定义了都没用,因为你直接在new BufferedInputStream中new了FileInputStream。到最后 fis fos都还是空的。这样写会报错。你要这样写直接关bufis和bufos就行了,当然关前得判断下是否为nulll

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
我去,关错流啦
回复 使用道具 举报
import java.io.*;

class CopyPic

{

        public static void main(String[] args)

        {

              //  FileOutputStream fos = null;                     注释掉

              //  FileInputStream fis = null;                         注释掉

                BufferedOutputStream bufos = null;

                BufferedInputStream bufis = null;

                try

                {

                        bufis = new BufferedInputStream(new FileInputStream("1.jpg"));

                        bufos = new BufferedOutputStream(new FileOutputStream("2.jpg"));

                        int by = 0;

                        while((by=bufis.read())!=-1)

                        {

                                bufos.write(by);

                        }

                        //byte[] chs = new byte[1024];

                        //int len =0;

                        //while((len=fis.read(chs))!=-1)

                        //{

                                //fos.write(chs,0,len);

                        //}



                }

                catch (IOException e)

                {

                        throw new RuntimeException("读写文件失败");

                }

                finally

                {

                        try

                        {

                                fis.close();

                        }

                        catch (IOException e)

                        {

                                throw new RuntimeException("读取文件关闭失败");

                        }

                        try

                        {

                                fis.close();

                        }

                        catch (IOException e)

                        {

                                throw new RuntimeException("写入文件关闭失败");

                        }

                }

        }

}

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
majunm 发表于 2013-7-8 19:12
import java.io.*;

class CopyPic

那个不是主要问题
回复 使用道具 举报

我顶
必须顶
不得不顶
用尽全力顶
再加上千斤顶
回复 使用道具 举报
枫儿 金牌黑马 2013-11-8 08:12:29
7#
总之把它顶到顶
接着使出葵花宝顶
就算顶到史前也要顶
老子看了会用道德经顶
孔子亲自拜你为师天天顶
秦始皇站在阿房宫上使劲顶
回复 使用道具 举报
枫儿 金牌黑马 2013-11-8 08:12:40
8#
汉高祖挥师杀向东罗马为你顶
吕布抛弃了貂禅而选择了帮你顶
张三丰见了后用太极拳九式全力顶
左冷禅召开武林盟主大会商讨如何顶
西门吹雪从此学会了最强一招剑神一顶
回复 使用道具 举报
枫儿 金牌黑马 2013-11-8 08:12:54
9#
龙剑飞的如来神掌最后一式改为万佛朝顶
陆小凤从此再也不管闲事了而专门来为你顶
四大名捕四面出击看天下还有没有人敢不在顶
回复 使用道具 举报
顶到阎罗王说我制造噪音我刁根烟看看他继续顶
顶到火山喷发太平洋海啸我还要继续往死里顶
顶到益阳地震山崩地裂地下水泛滥我还要顶
顶到地下水喷发造成洪灾损失惨重我也顶
回复 使用道具 举报
要是你觉得敢兴趣你也可以过来一起顶
要是你看我不爽我没办法还要继续顶
要是警察敢过来阻止我就更加要顶
要是别人见了骂我傻我还是要顶
回复 使用道具 举报
要是踩到我脚骨折我也继续顶
要是地面凹了我不管继续顶
要是天真塌下来了继续顶
就算天塌下来我都要顶
回复 使用道具 举报
就算腾讯倒闭也要顶
就算鞋子烂也要顶
我用尽全力去顶
我非常用力顶
回复 使用道具 举报
我很用力顶
我用力顶
我再顶
我顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马