繁体   English   中英

输入不符合预期,java FileReader

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM