• 大小: 6KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: Java
  • 标签: Java  

资源简介

java 实现十六进制数转为图片实例,含代码和测试数据

资源截图

代码片段和文件信息

package com.mybatis.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class TestImage1 {

public static void main(String[] args) throws Exception {
/* byte[] b1 =image2Bytes(“d:\\1.jpg“);
// for(int i=0;i System.out.println();
FileOutputStream fos=new FileOutputStream(“d:\\image.txt“);
fos.write(b1);
fos.close();*/

FileInputStream fis=new FileInputStream(new File(“d:\\data.txt“));
char[] ch=new char[fis.available()];
System.out.println(fis.available());
int len=fis.available();
int j=0;
System.out.println();
for(int i=0;i int temp=fis.read();
char c=(char)temp;
if(temp!=32){
ch[j++]=c;
// System.out.print(c);
}
}
System.out.println();

System.out.println(new String(ch0j).length());
byte[] b=hexStringToBytes(new String(ch0j));
buff2Image(b“d:\\test.jpeg“);
fis.close();

}

 
static void buff2Image(byte[] bString tagSrc) throws Exception
    {
        FileOutputStream fout = new FileOutputStream(tagSrc);
        //将字节写入文件
        fout.write(b);
        fout.close();
    }
public static byte[] hexStringToBytes(String hexString) {  
    if (hexString == null || hexString.equals(““)) {  
        return null;  
    }  
    hexString = hexString.toUpperCase();  
    int length = hexString.length() / 2;  
    char[] hexChars = hexString.toCharArray();  
    byte[] d = new byte[length];  
    for (int i = 0; i < length; i++) {  
        int pos = i * 2;  
        d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));  
    }  
    return d;  
}  
 private static byte charToByte(char c) {  
    return (byte) “0123456789ABCDEF“.indexOf(c);  
}

static byte[] image2Bytes(String imgSrc) throws Exception
    {
        FileInputStream fin = new FileInputStream(new File(imgSrc));
        //可能溢出简单起见就不考虑太多如果太大就要另外想办法,比如一次传入固定长度byte[]
        byte[] bytes  = new byte[fin.available()];
        //将文件内容写入字节数组,提供测试的case
        fin.read(bytes);
        fin.close();
        return bytes;
    }
public static String hexString2binaryString(String hexString)  
    {  
        if (hexString == null || hexString.length() % 2 != 0)  
            return null;  
        String bString = ““ tmp;  
        for (int i = 0; i < hexString.length(); i++)  
        {  
            tmp = “0000“  
                    + Integer.toBinaryString(Integer.parseInt(hexString  
                            .substring(i i + 1) 16));  
            bString += tmp.substring(tmp.length() - 4);  
        }  
        return bString;  
}

public static String binaryString2hexString(String bString)  
    {  
        if (bString == null || bString.equals(““) || bString.length() % 8 != 0)  
            return null;  
        StringBuffer tmp = new StringBuffer();  
        i

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11600  2016-01-09 15:34  data.txt

     文件       3458  2016-01-09 20:08  TestImage1.java

----------- ---------  ---------- -----  ----

                15058                    2


评论

共有 条评论