1. 读完所有图片数据后做encode
2. 读完节点的数据后做decode
3. 注意读取xml文件的编码方式, 可能需要使用utf-8方式读入

解决方案 »

  1.   

    我是用 dom4j的XMLWriter把文件写到硬盘上的,
    用DOMParser读入文件,然后再获取结点的值的, 这样做,有问题么?
      

  2.   

    应该没有问题,读出来后,用decoder变成二进制数组,再生成图片就行.
      

  3.   

    55555 可是就是不行啊。。1。encode:
    FileInputStream fileForInput = new FileInputStream("d:/test.jpg");
    String content = new String();
    byte[] bytes=new byte[fileForInput.available()]; fileForInput.read(bytes); content=new sun.misc.BASE64Encoder().encode(bytes); //具体的编码方法
    fileForInput.close();
    2。写文件:
    dom4j.XMLWriter output = new XMLWriter(  new FileOutputStream(FileName));
       output.write( document );
    output.close(); 3。读取出对应结点的值后decode,用DOMParser读入文件的:byte[] result =new sun.misc.BASE64Decoder().decodeBuffer(FileContent);
     RandomAccessFile inOut = new RandomAccessFile(Root + "/" + FileName, "rw");
    inOut.write(result);不知道是哪个地方出了问题?
      

  4.   

    没办法还原?不会吧?base64编码范围比ascii都要小,用utf8其实和ascii一莫一样,至于不能还原肯定是base64解码器的问题,和xml编码无关
      

  5.   

    可以肯定不是编码器和解码器的问题,我测试过了,把一个图片文件读入进行base64编码后,马上解码生成文件是ok的也许是写文件和读文件的时候有些地方不妥高手指点啊
      

  6.   

    检查过了,发现改用dom4j读入文件的话,就可以还原图片难道用dom4j生成的文件,用DomParser读取就会出问题???
    可是我必须要用DomParser啊哪位高手能指点一下啊?