java - 为什么 java BufferedReader 会丢失输出

标签 java

我的代码出现错误,

BufferedReader in=new BufferedReader(new InputStreamReader(System.in));

System.out.print("a    = ");
int a=in.read();
System.out.print("b    = ");
int b=in.read();

System.out.print("    = "+a);
System.out.print("b    = "+b);

我尝试输入1, 我不明白为什么结果是这样的?

a    = 1

b    =     = 49b    = 13

第二个输入去哪里了?

最佳答案

你可以尝试这样的事情:

a = in.readLine();
System.out.print("b    = ");
String b=in.readLine();
int aInt = Integer.valueOf(a);
int bInt = Integer.valueOf(a);
System.out.print("a    = "+aInt);
System.out.print("b    = "+bInt);

read() 逐字符读取,因此换行符将被计为新字符。要了解更多信息,您可以阅读 here .

关于java - 为什么 java BufferedReader 会丢失输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40873276/

相关文章:

java - 第二次触发更新时 OnetoOne 映射的延迟初始化

java - scala/spark —如何使用指定的任意字节数组创建字符串?

java - Java 应用程序能否检测到调试器已附加?

java - 为什么 JD-GUI 每行都加上注释和行号?

Java Swing : Write cross platform application (basically CRUD)

java - 数组和链表: will arrays be able to allocate 300MB in memory if 512 MB is free but 300 MB is not contiguous

java - 如何在 C 和 Java 中处理 10^100 阶的数字?

java - 如何修复 java Apache POI 项目中的 NoClassDefFoundError?

java - 如何为 Ant 构建配置 Ivy

java - 如何确定系统托盘在屏幕上的位置?