这是我压缩 a.rm 时候出现的错误提示Exception in thread "main" sun.io.MalformedInputException
        at sun.io.ByteToCharDoubleByte.flush(ByteToCharDoubleByte.java:57)
        at sun.nio.cs.StreamDecoder$ConverterSD.flushInto(StreamDecoder.java:266
)
        at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:290)        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)
        at java.io.InputStreamReader.read(InputStreamReader.java:167)
        at java.io.BufferedReader.fill(BufferedReader.java:136)
        at java.io.BufferedReader.read(BufferedReader.java:157)
        at ZC.main(ZC.java:18)
请按任意键继续 . . .

解决方案 »

  1.   

    BufferedReader in = new BufferedReader(new FileReader(FileName1)) ;
    BufferedReader in2 = new BufferedReader(new FileReader(FileName2)) ;改成: FileInputStream in = new FileInputStream(FileName1);
    FileInputStream in2 = new FileInputStream(FileName2);
      

  2.   

    强啊,楼上 
    Java 's IO 一直让人头痛,请问,你为什么这么改?
    说说好吗?
      

  3.   

    Reader 是用来读取文本文件的.
    但是rm,excel文件都是二进制文件.
      

  4.   

    对,这个很简单得道理,Java编程思想里有写
      

  5.   

    谢谢二位
    还有个小问题:
    我的压缩文件有个是     “中文.txt”
    解压缩后,文件名怎么成了   “涓枃.txt”  ?猫呜同志还在吗?
    文件名编码问题该如何解决?
      

  6.   

    http://community.csdn.net/Expert/TopicView1.asp?id=3222720
      

  7.   

    编码问题我也不懂....呵呵.有一片文章可以参考:http://blogs.sun.com/roller/comments/shilei/Weblog/zipinputstream%EF%BF%BD_%EF%BF%BD_%EF%BF%BD_%EF%BF%BD_%EF%BF%BD
      

  8.   

    ZipInputStream不能正确处理中文文件名 java的java.uti.zip包中,对中文文件名的处理都是按照Unicode的方式去处理的它内部在取ZipInputStream.getNextEntry()时是调用的getUTF8String()取文件名。因此如果压缩包中的文件名是非unicode编码的,则不可避免的回抛出异常 IllegalArgumentException 
    而就目前所知: winRAR、winzip等压缩软件都是将中文文件名按照GBK进行的编码,因此会出现这样的错误。 说来也有趣,本来这里写的就是java.util.zip关于中文的的问题,结果它自己也是有中文的问题。归根到底还是unicode没有成为大家通用的缺省的字符集。 
    昨天不用utf-8的encoding,还是乱码,今天就好了。 在今天的header中有如下: 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    最后发现,是在自己的settings中,可以自己修改各个header、footer、css等,只需在header中将utf-8设置好即可。 应cytihuntor要求,把我的理解描述一下,也不知是否正确: 
    在Setting->Themms先设置自己的theme. 
    然后在Pages中分别选择_header和Weblog,看起header中有无以下类似的,没有则自己添加: 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    July 02, 2004 12:32 AM PDT Permalink 9 Comments 
    Trackback URL: http://blogs.sun.com/roller/trackback/shilei/Weblog/zipinputstream&#65533;_&#65533;_&#65533;_&#65533;_&#65533; 
    Comments:
    关于设置字符集,我在setting中找了半天没找到你说的在哪设,可否明示另外,我自己在本地用roller建了一个blog站点,但不知怎么日期头部分总是乱码 就是 July .... 2004 显示总是????? 2004 可否知道怎么回事,谢谢最后发现,是在自己的settings中,可以自己修改各个header、footer、css等,只需在header中将utf-8设置好即可。 
    Posted by cytihuntor on July 03, 2004 at 12:14 AM PDT 谢谢shi lei,已经搞定。但好象roller的themes定位有点问题,通过它自己的编辑weblog选项提交后没有保存,不过这没有问题,我可以直接改它的文件。它对回车什么的处理有问题,刚才看到上次提交的东西乱七八糟的. 
    Posted by cytihuntor on July 04, 2004 at 07:08 PM PDT 它把回车都过滤掉了,是不是直接粘贴就没问题了 
    Posted by cytihuntor on July 04, 2004 at 07:09 PM PDT 不好意思,想到什么说什么,一点一点往出挤关于中文问题,基本已经解决,但前面说日期显示乱码仍然没有解决。我看了他的源码,日期显示部分是一个tag,好象没有看出什么问题。很奇怪,为什么单独日期显示会有问题呢,可能是跟我用的系统有关。我想你一定很忙,不过如果有什么想法可以提示我一下。我用的系统是 中文2000 professional + tomcat5 + mysql4.0.20, 我用他的源码测试了一下,在我的系统console上显示的日期是 七月 2004,我想是不是因为我的系统是中文的原因 现在在编辑器里写了上面文字,顺便试一下回车问题是不是可以解决 
    Posted by cytihuntor on July 04, 2004 at 07:18 PM PDT 抱歉,没在本机装过roller,不清楚你说的日期问题指的是哪个? 
    另外你指的回车又指的什么? 
    Posted by shilei on July 05, 2004 at 08:09 AM PDT 日期问题,就是说在界面上显示的日期,比如说你看到的是 July 5,2004,但在我这是 ???? 5,2004 回车问题,是说你看我所有的回帖显示都没有换行,实际上我写的时候是有换行的,但提交后就没啦,你的帖子怎么就没有这个问题。

    Posted by cytihuntor on July 05, 2004 at 06:33 PM PDT 回车你用
    隔开就可以了,这是html的标准标签。 
    例如你用显示下面两行: 
    行1 
    行2 
    需要写下面两行: 
    <br>行1 
    <br>行2 
    抱歉,日期问题不清楚,应该还是java的locale的问题 
    Posted by shilei on July 06, 2004 at 07:11 AM PDT thanks. 
    Posted by cytihuntor on July 06, 2004 at 10:08 PM PDT FileOutputStream f = new FileOutputStream(z) ; CheckedOutputStream csum = new CheckedOutputStream(f , new Adler32()) ; ZipOutputStream zos = new ZipOutputStream(csum) ; FileInputStream in = new FileInputStream(filename); zos.putNextEntry(new ZipEntry("中文.txt")) ; int c ; while((c=in.read())!=-1) zos.write(c) ; in.close(); 我这样的生成的压缩文件里的文件名是乱码怎么办? 
    Posted by 猫呜 on July 28, 2004 at 10:13 PM PDT 
    Website: http://blog.csdn.net/maowu