publicstaticvoidconvertToHex(PrintStream out,File file)throwsIOException{InputStream is =newFileInputStream(file);int bytesCounter =0;int value =0;StringBuilder sbHex =newStringBuilder();StringBuilder sbText =newStringBuilder();StringBuilder sbResult =newStringBuilder();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 contentif(bytesCounter!=0){//add spaces more formatting purpose onlyfor(; bytesCounter<16; bytesCounter++){//1 character 3 spaces
sbHex.append(" ");}
sbResult.append(sbHex).append(" ").append(sbText).append("\n");}
out.print(sbResult);
is.close();}publicstaticvoidmain(String[] args)throwsIOException{//display output to consoleconvertToHex(System.out,newFile("c:/file.txt"));//write the output into a fileconvertToHex(newPrintStream("c:/file.hex"),newFile("c:/file.txt"));}