java - 使用 DataInputStream 输入整数值

标签 java datainputstream

在使用 DataInputStream 输入任何值时,如果我输入任何一位数字,我必须按 Enter 键两次......并且在下面编写的代码片段中

public void print()
   {
       DataInputStream in = new DataInputStream(System.in);
       try
       {
           System.out.println("Enter a digit");
           int n=in.readInt();
           System.out.println(n);
        }
        .
        .
        .
        .

在打印 n 的值时,它通常会显示一些意外的值...使用 BufferedReader 不会导致同样的问题...

当输入的值为 233 时,输出显示为 842216202...代码中可能出现的错误是什么...需要帮助...

最佳答案

DataInputStream 读取二进制数据。当您输入 [2, 3, 3,\n] 时,它等于 [0x32, 0x33, 0x33, 0x0A] (以大尾数法), 0x3233330A,即842216202(十进制格式)。

更改为扫描仪,它读取文本并具有将字符转换为(例如)整数的说服方法,您使用扫描仪的示例:

Scanner in = new Scanner(System.in);
try {
    System.out.println("Enter a digit");
    int n = in.nextInt();
    System.out.println(n);
} ...

关于java - 使用 DataInputStream 输入整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11598377/

相关文章:

java - EJB 警告 : WELD-000411: . .. 考虑使用 @WithAnnotations 或具有边界的通用类型来限制事件

java 关于 IntelliJ Button

java - 确定哪个客户端使用套接字发送数据

java - 在 BufferedReader 之后使用 DataInputStream

java - DataInputStream 的结果不一致

java - 文件输入流/数据输入流

java - WebView白屏怎么解决?

java - 将 EditText 和 Spinner 数据插入 SQLite?

java - 如何访问 setOnItemClickListener 方法中的接口(interface)?

groovy - 使用Groovy从远程服务器读取文件