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 get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024