各位高人,我在接收邮件附件时,接到的附件是byte[]数组,也知道附件的mine类型,请问如何将这些byte[]转换成文原来发送时对应的文件,比如pgf,txt,word,jpg.最好能有个例子.谢谢

解决方案 »

  1.   

    try
    {
    FileOutputStream fos = new FileOutputStream("c:\\test.pdf");
    byte[] mydata= new byte[100];
    fos.write(mydata);
    fos.flush();
    fos.close();
    } catch (FileNotFoundException e)
    {
    e.printStackTrace();
    } catch (IOException e)
    {
    e.printStackTrace();
    }
      

  2.   

    既然是字节数据(二进制数据),保存的时候不需要考虑格式,直接使用字节流写入文件即可。比如FileOutputStream,当然,用BufferedOutputStream包装一下则更好。代码可参考2楼。需要考虑的只有一点:为了让操作系统自动识别文件类型,文件的扩展名得考虑一下
    1、根据附件的mine类型确定文件的扩展名。
    2、采用原附件的扩展名。
      

  3.   


    是我误导了,让楼主考虑了一个不必要的问题。对于邮件附件来说,其实采用上传时的文件名就足够了。上传的时候叫啥,你发送的时候也叫啥。
    举个例子来说,假如你的附件叫“photo.jpg”,那我在发送附件的时候,文件名就采用“photo.jpg”
    如果你的附件没给扩展名,则我发过去的文件也是没扩展名的。我以前就是这样做的,我记得网易也是这样做的:采用原名。
    否则就会面临楼主提出的问题,这问题当然可以解决,但:一是有点麻烦,二是没有必要。呵呵。