Home > File > Chuyển đổi File thành giá trị Hex trong Java

Chuyển đổi File thành giá trị Hex trong Java

Ví dụ sau minh họa cách sử dụng String formatter(“%02X”) để chuyển đỏi một File thành giá trị Hex

package quyetdv.java.javaio.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
public class FileToHex {
    public static void convertToHex(PrintStream out, File file) throws IOException {
        InputStream is = new FileInputStream(file);
        int bytesCounter = 0;
        int value = 0;
        StringBuilder sbHex = new StringBuilder();
        StringBuilder sbText = new StringBuilder();
        StringBuilder sbResult = new StringBuilder();
        while ((value = is.read()) != -1) {
           // convert to hex value with "X" formatter
           sbHex.append(String.format("%02X ", value));
           // If the chracater is not convertable, just print a dot symbol "."
           if (!Character.isISOControl(value)) {
               sbText.append((char) value);
           } else {
               sbText.append(".");
        }
        // if 16 bytes are read, reset the counter,
        // clear the StringBuilder for formatting purpose only.
        if (bytesCounter == 15) {
            sbResult.append(sbHex).append(" ").append(sbText).append("\n");
            sbHex.setLength(0);
            sbText.setLength(0);
            bytesCounter = 0;
        } else {
            bytesCounter++;
        }
     }
     // if still got content
     if (bytesCounter != 0) {
        // add spaces more formatting purpose only
        for (; bytesCounter < 16; bytesCounter++) {
            // 1 character 3 spaces
            sbHex.append(" ");
        }
        sbResult.append(sbHex).append(" ").append(sbText).append("\n");
     }
     out.print(sbResult);
     is.close();
   }
   public static void main(String[] args) throws IOException {
      // display output to console
      convertToHex(System.out, new File("D:\\test.txt"));
      // write the output into a file
      convertToHex(new PrintStream("D:\\test.hex"), new File("D:\\test.txt"));
   }
}

Kết quả:

FileToHex

Advertisements
Categories: File
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: