目录
题目:*17.19 (查看十六进制)
编写一个程序,提示用户输入文件名,从文件读取字节,然后显示每个字节的十六进制表示形式。
可以先将字节值转换为一个8比特的字符串,然后再将比特字符串转换为一个两位的十六进制字符串。
-
代码示例
编程练习题17_19ViewHex.java
package chapter_17;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class 编程练习题17_19ViewHex {
public static void main(String[] args)throws IOException {
ArrayList<String> list = new ArrayList<>();
System.out.print("Enter a text file name:");
Scanner in = new Scanner(System.in);
String path = in.next().replaceAll("\\\\", "/");
if(!path.isEmpty()) {
try(
FileInputStream input = new FileInputStream(path);
){
int read;
while((read = input.read()) != -1) {
list.add(getHex(read));
}
}
}
for(String s:list) {
System.out.println(s);
}
}
public static String getHex(int value) {
return String.format("%02X", value);
}
}
-
输出结果,用的上一题的文件
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Enter a text file name:C:\Users\Lenovo\eclipse-workspace\JavaFX\src\Text\Exercise17_18.txt
31
32
33
34
35
36
31
31
32
32
33
33
61
62
63