从十六进制码字符串中还原文件
2006-10-25 17:30
1096 查看
最近在做一个项目,用JBuilder 2005和DB2 7.0开发。用QueryDataSet取DB2中Blob字段时遇到一个问题:QueryDataSet不能用getBinaryStream()的方 法取blob的数据,默认只能用getString()的方法,取出的string里面存放的是16进制流的字符串,把这个字符串转换成二进制流之后输出 到文件,却是乱码。
从网上找到资料,原来需要把两个字符转成一个字节码。代码如下:
//注意:此方法和getBytes的不同之处是,这里需要两个字符转成一个字节码。
private byte[] str2ByteArray(String str) {
int length = 0;
if (str.length() % 2 == 0)
length = str.length() / 2;
else
length = str.length() / 2 + 1;
byte[] result = new byte[length];
String s = "";
int j = 0;
for (int i = 0; i < str.length(); i += 2) {
if ((i + 2) < str.length()) {
s = str.substring(i, i + 2);
} else {
s = str.substring(i, str.length());
}
if (!s.equals("") && !s.equals("##")) {
byte b = new Integer(Integer.parseInt(s, 16)).byteValue();
result[j++] = b;
}
}
return result;
}
将字符串转换之后,InputStream in = new ByteArrayInputStream(byte[]),然后就可以将InputStream输出到文件了。
从网上找到资料,原来需要把两个字符转成一个字节码。代码如下:
//注意:此方法和getBytes的不同之处是,这里需要两个字符转成一个字节码。
private byte[] str2ByteArray(String str) {
int length = 0;
if (str.length() % 2 == 0)
length = str.length() / 2;
else
length = str.length() / 2 + 1;
byte[] result = new byte[length];
String s = "";
int j = 0;
for (int i = 0; i < str.length(); i += 2) {
if ((i + 2) < str.length()) {
s = str.substring(i, i + 2);
} else {
s = str.substring(i, str.length());
}
if (!s.equals("") && !s.equals("##")) {
byte b = new Integer(Integer.parseInt(s, 16)).byteValue();
result[j++] = b;
}
}
return result;
}
将字符串转换之后,InputStream in = new ByteArrayInputStream(byte[]),然后就可以将InputStream输出到文件了。
相关文章推荐
- 任意格式文件转成字符串,传输之后,还原为原文件格式
- 将文件用base64编码保存成字符串,并从字符串中还原。
- SQL Server 大数据搬迁之文件组备份还原实战
- 一个JSON字符串和文件处理的命令行神器jq,windows和linux都可用
- python---布尔类型赋值,字符串,len(),转义、拼接、替换、文件操作
- java字符串写入文件及换行问题
- 将字符串压缩入文件
- 读取和保存一个对象到文件方法总结(字符串形式)
- java面试题 字符串安顺序写入文件
- 字符串,字典,数组写入本地文件和从本地文件读取
- 第一个go的web程序;调用七牛云存储的音频api问题解决;条件搜寻文件里的内容,字符串拼接+在上一行
- java读取文件夹下所有文件并替换文件每一行中指定的字符串
- shell 判断文件中是否含有某个字符串
- 通过文件字节流字符串传输文件
- OC获取文件MD5值与swift字符串MD5加密方法
- 关于java下载文件及获取文件路径和截取字符串的一点记录
- OC-NSString从文件中读取字符串
- ruby: 嵌入字符串、% 呈现、ruby文件读写ruby way之IO之一
- Oracle数据库还原dmp文件 (不积跬步,无以至千里)
- Java字符串写入文件三种方式的实现