java操作文件 文件----二进制----字符串---二进制---文件
2013-08-31 10:15
399 查看
先说一下需求:用webservice实现文件传输,并且客户端只能接收字符串。需求比较变态,因为是要和以前的PB程序进行整合,没办法。
经过长时间的测试,发现两种方法:
1、JAVA读文件--二进制--转化成字符串--二进制--文件。这种方法在二进制转字任串的时候必须用iso8859-1编码,同理字符串到二进制也要用iso8859-1,否则会丢失数据,最后生成文件时错误。
2、JAVA读文件--二进制--BASE64加密--二进制---字符串---二进制---base64解密--二进制--文件。这种方法的好处是不要求编码方式,缺陷是base64加密会使数据量增加1/3。
因为考虑到客户端编码格式不是iso8859-1,所以采用了第二种方法
上测试代码
Java代码
File file=new File("d:\\070728_edu_ziyuan02.jpg");
InputStream tem=new FileInputStream(file);
byte[] temp = new byte[tem.available()];
tem.read(temp);
//String imgstr = new String(temp,"iso8859-1");
//byte[] bt = imgstr.getBytes("iso8859-1");
temp = Base64.encodeBase64(temp);
String result = new String(temp);
byte[] bt = result.getBytes();
bt = Base64.decodeBase64(bt);
File bfile=new File("d:\\11.jpg");
FileOutputStream fos = new FileOutputStream(bfile);
fos.write(bt);
fos.close();
经过长时间的测试,发现两种方法:
1、JAVA读文件--二进制--转化成字符串--二进制--文件。这种方法在二进制转字任串的时候必须用iso8859-1编码,同理字符串到二进制也要用iso8859-1,否则会丢失数据,最后生成文件时错误。
2、JAVA读文件--二进制--BASE64加密--二进制---字符串---二进制---base64解密--二进制--文件。这种方法的好处是不要求编码方式,缺陷是base64加密会使数据量增加1/3。
因为考虑到客户端编码格式不是iso8859-1,所以采用了第二种方法
上测试代码
Java代码
File file=new File("d:\\070728_edu_ziyuan02.jpg");
InputStream tem=new FileInputStream(file);
byte[] temp = new byte[tem.available()];
tem.read(temp);
//String imgstr = new String(temp,"iso8859-1");
//byte[] bt = imgstr.getBytes("iso8859-1");
temp = Base64.encodeBase64(temp);
String result = new String(temp);
byte[] bt = result.getBytes();
bt = Base64.decodeBase64(bt);
File bfile=new File("d:\\11.jpg");
FileOutputStream fos = new FileOutputStream(bfile);
fos.write(bt);
fos.close();
相关文章推荐
- java实现解析二进制文件的方法(字符串、图片)
- Java读写二进制文件操作
- java的io操作(将字符串写入到txt文件中)
- [JAVA]用JAVA文件读写操作截取文件中所有以x开头y结尾的字符串
- java中的文件操作:读取写入byte[]字节流、string字符串、list列表
- Java操作文件输出为字符串以及字符串输出为文件的方法
- Java 二进制文件读写操作
- Java读取文件内容与字符串保存成文件的操作
- Java读写二进制文件操作
- java的io操作(将字符串写入到txt文件中)
- Java读写二进制文件操作
- Java操作文件输出为字符串以及字符串输出为文件
- Java文件操作(二):二进制文件
- 项目案例:二进制文件与十六进制字符串转化常用操作
- 【C/C++学院】0826-文件重定向/键盘输入流/屏幕输出流/字符串输入输出/文件读写简单操作/字符文件读写二进制与文本差别/get与getline挖掘数据/二进制与文本差别/随机位置/多线程初级
- java实现解析二进制文件(字符串、图片)
- java实现解析二进制文件(字符串、图片)
- *使用Java操作二进制文件 (转)
- java读写文件和字符串操作
- java的io操作(将字符串写入到txt文件中)