2012-11-10 33 views
1

我一直在这个问题上工作了几天,无法让它工作。该问题要求我打开一个文件并计算平均值,然后关闭它。然后重新打开一个计算标准偏差。我遇到的麻烦是在计算平均值并关闭文件之后。当我尝试重新打开它时显示找不到该文件的错误。以下是我迄今为止:在java中重新打开文件的正确方法是什么?

File fr = new File(filename); 
Scanner inputFile = new Scanner(fr); 

filename = inputFile.nextLine(); 

while(inputFile.hasNext()) 
{ 
    double number = inputFile.nextDouble(); 
    sum = number + sum; 

    count++; 

    line = inputFile.nextDouble(); 
} 
inputFile.close(); 
mean = sum/count; 

//New File 

File file = new File(filename); 
Scanner br = new Scanner(file); 

double sumB = 0; 
int countB = 0; 

filename = br.nextLine(); 
while(br.hasNext()) 
{ 
    double sumthin = br.nextDouble(); 
    difference = sumthin - mean; 
    sumB = sumB + Math.sqrt(difference); 
    count++; 
    line = br.nextDouble(); 
} 
br.close(); 
Math.sqrt(sumB/count); 
+0

什么是错误?你为什么不用fr(第二次)? – elyashiv

+0

这是错误,显示:在线程中的异常“main”java.io.FileNotFoundException:87.5517(系统找不到指定的文件) \t at java.io.FileInputStream.open(Native Method) \t at java。 io.FileInputStream。 (FileInputStream.java:120) \t at java.util.Scanner。 (Scanner.java:636) \t at StatsDemo.main(StatsDemo.java:50)' – IvanNewYork

+0

如果我使用'fr',它会给我一个错误,说它已经定义了 – IvanNewYork

回答

4

你(可能)不打开同一个文件 - 你是从第一个文件中读取一个文件名,然后打开那第二个文件:

File fr = new File(filename); 
... 
filename = inputFile.nextLine(); 
... 
File file = new File(filename); 
相关问题