[英]Input does not behave like expected, java FileReader
我有以下代码,执行时应该从指定的文件中获取一个输入整数,并输出乘法表最多 10 个给定的数字。
现在我不知道为什么,但在读取数字时,它会将其转换为完全不同的东西。
输入为 3,文件将 num 识别为 51。
任何好的猜测发生了什么,我没有看到?
public class exercise2 {
public static void main(String[] args) {
try {
FileReader reader = new FileReader("e://ex2.txt");
int num = reader.read();
for (int i=0; i<11; i++){
System.out.println(num + " * " + i+ "= "+ num*i);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Reader.read
读取单个字符。
字符3
具有 Unicode 代码点 51(十进制)。
查看文档:
https://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html#read()
读取单个字符。
因此,此方法仅返回文件的第一个字符(转换为int
)。
你想要的是使用Scanner
,因为你想解析文件:
Scanner s = new Scanner(new File("e://ex2.txt"));
int input = s.nextInt();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.