import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class ImageToHex {
public static void main(String[] args) throws IOException
{
FileInputStream image = new FileInputStream("C:\\Users\\曹红英\\Desktop\\chy.jpg");
java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream();
byte[] buff = new byte[1024];
int len = 0;
while((len = image.read(buff)) != -1)
{
bos.write(buff, 0, len);
}
//得到图片的字节数组
byte[] result = bos.toByteArray();
//字节数组转成十六进制
System.out.println(result);
String str=byte2HexStr(result);
/*
* 将十六进制串保存到txt文件中
*/
PrintWriter outdata = new PrintWriter(new FileWriter("C:\\Users\\曹红英\\Desktop\\testdata.txt"));
outdata.println(str);
outdata.close();
System.out.println("testdata.txt写入成功!");
}
/*
* 实现字节数组向十六进制的转换方法
*/
public static String byte2HexStr(byte[] b) {
String hs="";
String stmp="";
String halt="\t";
System.out.println(b.length);
for (int n=0;n<b.length;n++) {
stmp=(Integer.toHexString(b[n] & 0XFF));
if (stmp.length()==1) hs=hs+"0"+stmp+halt;
else hs=hs+stmp+halt;
}
return hs.toUpperCase(); //转换成大写
}
}