Java: files to hex
•
Java
I have a java file
FileInputStream in = null; try{ in = new FileInputStream("C:\\pic.bmp"); }catch{}
I want to pic BMP is an array of hexadecimal values, so I can edit it and save it as a modified version
Is there a Java class to do this?
Solution
You're lucky. I had to do this a few months ago This is a compressed version that accepts two parameters from the command line Both comand line parameters are file names... The first is the input file and the second is the output file The input file is read in binary and the output file is written in ASCII hexadecimal I hope you can adapt to your needs
import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; public class BinToHex { private final static String[] hexSymbols = { "0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f" }; public final static int BITS_PER_HEX_DIGIT = 4; public static String toHexFromByte(final byte b) { byte leftSymbol = (byte)((b >>> BITS_PER_HEX_DIGIT) & 0x0f); byte rightSymbol = (byte)(b & 0x0f); return (hexSymbols[leftSymbol] + hexSymbols[rightSymbol]); } public static String toHexFromBytes(final byte[] bytes) { if(bytes == null || bytes.length == 0) { return (""); } // there are 2 hex digits per byte StringBuilder hexBuffer = new StringBuilder(bytes.length * 2); // for each byte,convert it to hex and append it to the buffer for(int i = 0; i < bytes.length; i++) { hexBuffer.append(toHexFromByte(bytes[i])); } return (hexBuffer.toString()); } public static void main(final String[] args) throws IOException { try { FileInputStream fis = new FileInputStream(new File(args[0])); BufferedWriter fos = new BufferedWriter(new FileWriter(new File(args[1]))); byte[] bytes = new byte[800]; int value = 0; do { value = fis.read(bytes); fos.write(toHexFromBytes(bytes)); }while(value != -1); fos.flush(); fos.close(); } catch(Exception e) { e.printStackTrace(); } } }
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码