原来的文件是乱码?
那你怎么知道内容不一样?如果原文件有汉字,你认为getBytes()能读出汉字来吗?

解决方案 »

  1.   

    应该不会吧,要用一个ByteArrayInputStream,应该要用String来转换成byte[]的!
      

  2.   

    你用输入输出流试一试吧,InputStream肯定可以解决这个问题,他有一个方法可以把字节读入到一个数组中
      

  3.   

    首先,你这个resource文件是不是文本文件?如果不是,不讨论怎么变成String,因为根本不能够。如果是文本文件,你必须知道它的ecoding charset.然后用InputStreamReader(new FileInputStream("file name"), "encoding charset")。如果你不知道他的ecoding,也不讨论怎么变成String,因为你还是不能。
    任何文件,不管是text or binary,都是文件,所以都可以用流读出来,但是拿着流又怎么样?所以,读resource时,先要知道resource file的性质。
      

  4.   

    谢谢各位。我现在能把这个文件写到字符数组中,这样:
    FileInputStream fis1 = new FileInputStream("out.txt");
     byte[] zipped=new byte[fis1.available()];
    fis1.read(zipped);
    其实我的out.txt是通过把一串字符通过一个压缩算法压缩后,一个字节一个字节的写入的一个文件,现在就是想把它再原封不动的写回到字符数组中,进行解压。
    可是我发现写到字符数组中的文件已经变了,而且象hayai(生命树)所说的,我也并不知道encoding charset。但我觉得都是用字符去读写,应该不会变啊
    可是现在压缩后写入文件内容是“x?+L??(??515?12?315?16?331?4?444?03577?))*M¥*??4"Z?1!? ??”
    写入字符数组后内容就成了“x?+L??(??515?12?315?16?331?4?444?03577?))*M??*??4"Z?1!? ??”这样,压缩算法我试过,压后直接就对数组解压是没有问题的。
    请大家帮忙啊
    我实在是没有办法了~~
      

  5.   

    问题解决了,谢谢大家的热心帮助!
    只要用同样的FILESTREAM读写,不用BUFFERED读写就可以了!
    给大家分~