各位大侠 实在不是小弟偷懒,研究了好久也没搞定,现在赶进度不能再拖了.请各位支援一下.
需求如下把一个二进制文件(如*.doc) 读取到流里然后存成String格式数据放在对象里,  然后在从对象里取出这个字符串,在另个路径里写成文件,这个文件应该和原来一样.难点是中间要存成String格式,我每次写出来的doc文件,用word打开都是乱码。代码测试通过立刻给分,在线等待先谢谢大家了

解决方案 »

  1.   

    为什么要“中间要存成String格式”?
      

  2.   

    因为中间有第三方要进行加密解密,给我们留的接口就是String格式的。
    我知道String 格式处理二进制格式文件会有问题,要不也不会在这里拜托大家了!!
      

  3.   

    你保存的时候,是否也是.doc 文件, 你从.doc 文件读取的 string,是一些带格式内容的字符串,如果保存为.txt变成乱码就很正常了。
      

  4.   

    你这样的设计肯定有问题的,比如.doc文件如果带图片了,你肯定实现不了,既然是接口,你在和别人谈谈吧,
      

  5.   

    既然这样我就把情况说详细些,客户自己有OA系统,他们把doc的附件加密后变成字符串放在xml文件的一个标签内。我们的系统要把这个xml解析出来,从标签里取值当然是String的了 ,但是我们要把这个字符串变成文件放在服务器上。我觉得应该是可以实现的,因为用户的OA系统就是这么做的。所以拜托大家了   我实在没什么好办法了
      

  6.   

    你从xml里读出的那个字符串当作二进制流进行解密以后再将这个二进制流写入word文档。写出来的文件对不对,和你的解密有关,既然你要这么做,你肯定要知道如何解密的,但是你没有提
      

  7.   

    你程序中是不是用到了 FileReader ,这个类是针对文本字符的
    For reading streams of raw bytes, consider using a FileInputStream
      

  8.   

    我看问题处在XML得解析上。
    解析后是否有转义字符存在?如果是,再解密就乱套了!
      

  9.   

    从文件读出byte[] -> byte[]转换为String ->加密(解密)-> String转换为byte[] ->写文件byte[]与String的转换方法怎么都行,只要可逆就行了,反正你的转换仅仅是为了加密解密,又不需要打印,不过看后来你说的好像是byte[]转换成String的操作是你们客户已经完成了,这就要知道它们是怎么弄成string的了吧。
      

  10.   

    BufferedReader br = null;
        String ret = null;
        try {
          br = new BufferedReader(new FileReader(f));
          String line = null;
          StringBuffer sb = new StringBuffer( (int) f.length());
          while ( (line = br.readLine()) != null) {
                   sb.append(line).append(LINE_BREAK);
          }
          ret = sb.toString();
        }
        finally {
          if (br != null) {
            try {
              br.close();
            }
            catch (Exception e) {}
          }
        }
      

  11.   

    eprint自定义打印是一个页面套打工具.它直接在IE浏览器中可视化的设计各种复杂的打印模版,
    能够解决在IE浏览器中打印各种复杂的中国式报表及票据。详见: http://218.30.103.110:8080/eprint/index.htm
    方成eform表单工具,纯BS结构.100%开放源码.可以在 http://218.30.103.110:8080/eform/index.html 在线试用.    webprint是一个基于表格的页面打印解决方案.先将要打印的数据及样式组织到一个HTML的TABLE元素中, 然后将这个TABLE元素传给webprint,实现分页打印预览,出打印对话框打印和直接打印。    eprint自定义打印是一个页面套打工具.它直接在IE浏览器中可视化的设计各种复杂的打印模版,能够解决在IE浏览器中打印各种复杂的中国式报表及票据。
      

  12.   

    接口不能用String,应该用byte[]
    他们的接口简直搞笑,字符字节两码事都没分清。
    他们不懂的话,你得给他们解释阿