黑马程序员技术交流社区

标题: 字符流问题 [打印本页]

作者: 陌路行者    时间: 2013-7-8 18:55
标题: 字符流问题
本帖最后由 陌路行者 于 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. }
复制代码
为什么会丢失数据

作者: 草貌路飞    时间: 2013-7-8 19:03
你的fis和fos定义了都没用,因为你直接在new BufferedInputStream中new了FileInputStream。到最后 fis fos都还是空的。这样写会报错。你要这样写直接关bufis和bufos就行了,当然关前得判断下是否为nulll
作者: 陌路行者    时间: 2013-7-8 19:10
我去,关错流啦
作者: majunm    时间: 2013-7-8 19:12
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("写入文件关闭失败");

                        }

                }

        }

}


作者: 陌路行者    时间: 2013-7-8 20:15
majunm 发表于 2013-7-8 19:12
import java.io.*;

class CopyPic

那个不是主要问题
作者: 枫儿    时间: 2013-11-8 08:12

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





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