In this program we read the file contents byte by byte and then print the value in hexadecimal format. As an alternative to read a single byte we can read the file contents into array of bytes at once to process the file faster.
package org.kodejava.io;
import java.io.FileInputStream;
public class HexDumpDemo {
public static void main(String[] args) throws Exception {
// Open the file using FileInputStream
String fileName = "F:/Wayan/Kodejava/kodejava-example/data.txt";
try (FileInputStream fis = new FileInputStream(fileName)) {
// A variable to hold a single byte of the file data
int i = 0;
// A counter to print a new line every 16 bytes read.
int count = 0;
// Read till the end of the file and print the byte in hexadecimal
// valueS.
while ((i = fis.read()) != -1) {
System.out.printf("%02X ", i);
count++;
if (count == 16) {
System.out.println();
count = 0;
}
}
}
}
}
And here are some result from the file read by the above program.
31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36
37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32
33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38
39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34
35 36 37 38 39 30 0A
Latest posts by Wayan (see all)
- How do I create a string of repeated characters? - September 1, 2023
- How do I convert datetime string with optional part to a date object? - August 28, 2023
- How do I split large excel file into multiple smaller files? - April 15, 2023