java操作文件 文件----二进制----字符串---二进制---文件

16 篇文章 1 订阅

先说一下需求:用webservice实现文件传输,并且客户端只能接收字符串。需求比较变态,因为是要和以前的PB程序进行整合,没办法。

 

经过长时间的测试,发现两种方法:

 

1、JAVA读文件--二进制--转化成字符串--二进制--文件。这种方法在二进制转字任串的时候必须用iso8859-1编码,同理字符串到二进制也要用iso8859-1,否则会丢失数据,最后生成文件时错误。

 

2、JAVA读文件--二进制--BASE64加密--二进制---字符串---二进制---base64解密--二进制--文件。这种方法的好处是不要求编码方式,缺陷是base64加密会使数据量增加1/3。

 

因为考虑到客户端编码格式不是iso8859-1,所以采用了第二种方法

 

上测试代码

Java代码   收藏代码
  1. File file=new File("d:\\070728_edu_ziyuan02.jpg");  
  2. InputStream tem=new FileInputStream(file);   
  3. byte[] temp = new byte[tem.available()];         
  4. tem.read(temp);  
  5.   
  6. //String imgstr = new String(temp,"iso8859-1");  
  7. //byte[] bt = imgstr.getBytes("iso8859-1");  
  8.                 
  9. temp = Base64.encodeBase64(temp);  
  10. String result = new String(temp);  
  11. byte[] bt = result.getBytes();  
  12. bt = Base64.decodeBase64(bt);  
  13.   
  14. File bfile=new File("d:\\11.jpg");          
  15. FileOutputStream fos = new FileOutputStream(bfile);  
  16. fos.write(bt);  
  17. fos.close();  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值