先说一下需求:用webservice实现文件传输,并且客户端只能接收字符串。需求比较变态,因为是要和以前的PB程序进行整合,没办法。
经过长时间的测试,发现两种方法:
1、JAVA读文件--二进制--转化成字符串--二进制--文件。这种方法在二进制转字任串的时候必须用iso8859-1编码,同理字符串到二进制也要用iso8859-1,否则会丢失数据,最后生成文件时错误。
2、JAVA读文件--二进制--BASE64加密--二进制---字符串---二进制---base64解密--二进制--文件。这种方法的好处是不要求编码方式,缺陷是base64加密会使数据量增加1/3。
因为考虑到客户端编码格式不是iso8859-1,所以采用了第二种方法
上测试代码
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();
分享到:
相关推荐
- `Integer.toBinaryString(int i)`: 将十进制整数转换为二进制字符串,如`Integer.toBinaryString(10)`返回"1010"。 - `Integer.toOctalString(int i)`: 转换为八进制字符串,`Integer.toOctalString(10)`返回"12...
这个过程是上面操作的逆过程,它将字符串中的每个字符根据选定的编码转换为其对应的二进制表示。例如,字符'H'的ASCII值(72)会被转换成二进制`01001000`。 3. **读取二进制文件**:`CBinary`可能提供方法读取二...
然而,我们还需要考虑另一种异常情况:如果二进制字符串表示的数值超过了Java整数类型(如`int`、`long`等)的最大值,也会导致`NumberFormatException`。例如,对于`int`类型,最大值是2^31 - 1(即2147483647),...
`FileReader`的`readAsBinaryString`方法用于将文件读取为二进制字符串。需要注意的是,`readAsBinaryString`是异步的,因此我们需要监听`onloadend`事件来处理读取完成后的操作: ```javascript function ...
1. **读取图片文件**:使用文件I/O操作,例如Java的`FileInputStream`或Python的`open()`函数,读取图片文件的二进制内容,将其存入字节数组。 2. **编码转换**:将字节数组转化为字符串,这一步通常涉及编码格式的...
### Java实现整数转二进制字符串 #### 一、背景介绍 在计算机科学中,二进制是一种非常基础且重要的表示方式,它能够帮助我们更好地理解数据存储和处理的过程。将整数转换为二进制字符串是编程中常见的任务之一,...
1. 字符串转换为二进制字符串:我们可以使用Integer.toBinaryString()方法将字符串转换为二进制字符串。 2. 二进制字符串转换为Unicode字符串:我们可以使用toChar()方法将二进制字符串转换为Unicode字符串。 3. ...
在计算机编程中,字符串的16进制转10进制是一个常见的字符转换操作,特别是当处理二进制数据或在编程调试过程中遇到16进制数据时。16进制数,也称为十六进制数,是一种逢16进位的数制,使用数字0-9和字母A-F(或小写...
本文将深入探讨如何将图片转换为二进制格式,然后生成Base64编码字符串,以及如何将这些字符串重新转换回图片。这个过程在很多场景下都有应用,比如在网络上传输图片数据,或者在数据库中存储图片。 首先,我们需要...
JAVA二进制流转PDF 1 http接口接收到二进制流,如下,转换成Pdf文件保存到本地 %PDF-1.4 %���� 3 0 obj ...
二进制数组转换为二进制字符串 将二进制数组转换为十六进制字符串 将十六进制转换为二进制字节数组 将十六进制转换为二进制字符串
Java读取图片并转化为二进制字符串的实现方法是一个涉及到文件操作、字节流处理、Base64编码和解码的技术话题。本文将详细介绍上述过程的步骤和关键知识点。 首先,我们需要了解Java中处理文件读写的基本类,比如`...
在Java编程中,二进制、字节数组、字符、十六进制和BCD(Binary-Coded Decimal,二进制编码的十进制)编码转换是常见的数据处理任务。以下将详细介绍这些概念以及如何在Java中进行相关操作。 1. **二进制与十六进制...
当两个十六进制字符串进行按位异或运算时,会先将它们转换为二进制形式,然后逐位进行异或操作。异或运算是对两个位进行比较,如果两个位相同,则结果为0;如果两个位不同,则结果为1。 在Java中,我们可以利用`...
### Java读取二进制文件知识点详解 #### 一、二进制文件基本概念 在计算机科学中,二进制文件是由一系列字节组成的文件,这些字节可以表示任何类型的数据,包括文本、图像、音频等。二进制文件与文本文件的主要区别...
/* java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */
2. **16进制转文件的原理**:将16进制字符串转换为文件,通常需要解析这些字符串,将每个16进制字符转换为其对应的二进制值,然后将这些二进制值组合成完整的字节序列。这个字节序列可以代表任何类型的数据,如文本...
7. **二进制转换**: 在Java中,我们可以使用Integer.toBinaryString()方法将十进制数转换为二进制字符串,而Integer.parseInt()或Integer.valueOf()可以将二进制字符串转换回十进制数。 8. **实现二进制运算器**: ...
在Java中,我们可以使用`Integer`类的`toHexString`方法,将一个整数的二进制表示转换为十六进制字符串。例如: ```java int binaryNumber = 0b101010; // 二进制数 String hexString = Integer.toHexString(binary...
1. **二进制转十进制**:Java中可以使用`Integer.parseInt()`或`Long.parseLong()`方法,配合`"0b"`前缀来解析二进制字符串。例如: ```java String binary = "1010"; int decimal = Integer.parseInt(binary, 2); `...