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 build simple search page using ZK and Spring Boot? - March 8, 2023
- How do I calculate days between two dates excluding weekends and holidays? - January 12, 2023
- How do I discover the quarter of a given date? - January 11, 2023