2016-03-09 217 views
0

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

到目前为止,我做得非常好,我得到了所有的异常处理并保存了输入整数的文件,但我不确定如何读取文件。无论如何,我假设计算平均值并不困难。下面是我用下面链接的其余部分(我确实认为你还是需要看到完整的代码,以更好地认识这个问题)代码的一部分:

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

回答

0

你是不是正常打开文件,你需要使用一个读者:

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文件的具体格式做什么,但我假设你正在做的事情懂事,像写一个整数pe r行到你的文件。否则,请相应地调整代码以满足您的需求。

0

首先,正如chalarangelo所提到的那样,您无法正确打开文件。您可以使用Formatter类写入文件,但无法使用该文件读取文件。因此,您需要使用BufferedReader这样的适当阅读器并使用其readLine()方法。

除此之外,您需要将整数与字符串 “输入的整数:”一起存储...如果是这样,那么它将有点难以获得数字。我想打印只是数字劝到文件即只是做

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

,而不是

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

之后使用阅读器,读取一行,并将其转换成整数,并将其存储在chalarengo的回答中提到的数组中。