【问题标题】:Reading integers in a .txt file (Java)读取 .txt 文件中的整数 (Java)
【发布时间】:2016-03-09 12:10:39
【问题描述】:

所以基本上我正在尝试编写一个程序,其中有人可以输入 10 个整数,然后将其保存在 .txt 文件中,然后一起打开并平均。

到目前为止,我做得很好,我完成了所有异常处理并保存了包含输入整数的文件,但我不确定如何读取文件。我假设一旦我完成了所有操作,计算平均值就不难了。这是我的部分代码,其余部分链接如下(我真的认为您需要查看完整代码才能更好地识别问题):

public static void closeFile()
{
    if (output != null)
        output.close();
}
public static void readRecords()
{
    try
    {
        while (input.hasNext())
        {
            System.out.printf("%s%n", String.valueOf(numbers[i]));
        }
    }
}

http://pastebin.com/yW6G8N8C

【问题讨论】:

    标签: java input syntax output file-handling


    【解决方案1】:

    您没有正确打开文件,您需要使用阅读器:

    public static void readRecords(){
        try (BufferedReader br = new BufferedReader(new FileReader("numbers.txt"))) {
            String line;
            int[] number = new int[10];
            i=-1;
            while ((line = br.readLine()) != null) {
                i++;
                number[i] = Integer.parseInt(line);
                System.out.println("number "+i+" = "+number[i]);
            }
        }
        catch(Exception e){
            // Handle the trouble
        }
    }
    

    我不完全确定你想对你得到的数字做什么或numbers.txt 文件的确切格式,但我假设你正在做一些明智的事情,比如在文件中每行写入一个整数。否则,请相应地调整代码以满足您的需要。

    【讨论】:

      【解决方案2】:

      首先,正如 chalarangelo 所说,您没有正确打开文件。您可以使用Formatter 类写入文件,但不能使用它从文件中读取。所以你需要使用像BufferedReader这样合适的阅读器,并使用它的readLine()方法。

      除此之外,是否有必要将整数与字符串一起存储 “输入的整数:”......如果是这样,那么仅仅获得数字会有点困难。我建议只将数字打印到文件中,即这样做

      output.format("%s%n", String.valueOf(numbers[i]));

      而不是

      output.format("Inputted integer: %s%n", String.valueOf(numbers[i]));

      之后使用阅读器读取该行并将其转换为整数并将其存储在数组中,如 chalarengo 的回答中所述。

      【讨论】:

        猜你喜欢
        • 2018-07-22
        • 2017-08-23
        • 2019-02-25
        • 2016-05-27
        • 1970-01-01
        • 1970-01-01
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多