Java-Scanner 不适用于 nextByte()

标签 java

Scanner Sc = new Scanner(new File("Input.bin"));
String s = Sc.nextLine();
fsize = Integer.parseInt(s); // Reads 4

s = Sc.nextLine();
int mapSize = Integer.parseInt(s);     // Reads 3 
for (int i = 0; i < mapSize; i++)
{
    byte value = 0;
    value = Sc.nextByte();  // Here it is throwing the exception it should have
                            // print the ascii of 'b' which is 98????

    String key = Sc.nextLine();
    key = key.trim();

    dcMap.put(key, (char)value);
 // System.out.println(key + " " + (char)value);
}

Input.bin 文件内容:

4
3
b 0
c 10
a 11

最佳答案

java.util.Scanner 用于扫描文本

因此,当您调用 Scanner#nextByte() 时,它真正希望找到的是数字的文本表示。例如,如果您在那里使用“98”而不是“b”,它会将 98 读入该字节变量。

关于Java-Scanner 不适用于 nextByte(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11153341/

相关文章:

java - 分离算法中的唯一值

java - 帮助为我的应用制作 "launcher screen",并使其在不同设备上看起来正确

java - 更新依赖项中的版本时更新模块版本(多模块 maven )

java - Mule ESB 在 Callable 类之外读取 @Value 属性

java - 为什么此Java代码显示标识符预期错误?

java - 如何在旧的 Android API 上强制执行操作栏设置图标

java - AWS VPC 中的 docker 容器,好主意与否?

java - 如果java应用程序关闭,但未靠近框架

java - 获取当前正在运行的 Activity 的上下文

java - TCP 服务器以数据包结构发送文件(到非 Java 客户端)