2

我正在编写一个提示用户输入文件名的程序。我必须假设该文件包含一个表示 n 个数据值数量的整数,然后是一系列 n 个浮点数(在一个名为 RandomFloats 的文件中给我),每个都写在单独的行上。该程序应该将 RandomFloats 文件的内容读入一个数组,然后在控制台中显示并写入文件以下数据:数组中浮点数的个数,数组中的最低和最高数,总数和平均值。到目前为止,这是我的代码(我将在不起作用的部分添加评论)

 import java.io.File;
 import java.util.*;
 public class Problem9 {

/**
 * @param args 
 */
public static void main(String[] args)  {
    File rf = new File("RandomFloats");
    Scanner kb = new Scanner(rf);  //Unhandled exception type FileNotFoundException 
    double[] numFloats = new double [4268];
    for (int i = 0; i < numFloats.length; i++){
        numFloats[i] = kb.nextInt();
    }

    System.out.println("Please enter a file name");
    String fileName = kb.nextLine();
    minValue (numFloats);
    maxValue (numFloats);
    totalValue (numFloats);
    averageValue (numFloats);

}
public static void minValue (double[] numFloats){
    double min = 0;
    for(int i = 0; i < numFloats.length; i++){
        if (numFloats[i] < min){
            min =  numFloats[i];
        }
    }
    System.out.println("Min Value: " + min);
}
public static void maxValue (double[] numFloats){
    double max = 0;
    for(int i = 0; i < numFloats.length; i++){
        if (numFloats[i] > max){
            max =  numFloats[i];
        }
    }
    System.out.println("Max Value: " + max);
}
public static void totalValue (double[] numFloats){
    double total = 0;
    for (int i = 0; i < numFloats.length; i++){
        total += numFloats[i];
    }
    System.out.printf("\nTotal1: %.1f" , total);
}
public static void averageValue (double[] numFloats){
    double total = 0;
    double average;
    for (int i = 0; i < numFloats.length; i++){
        total += numFloats[i];
    }
    average = total / numFloats.length;

    System.out.printf("\nAverage: %.1f" , average);
}
    }

我不确定如何打印出样本大小,并且我创建的文件 RandomFloats 没有被读入数组。请帮助我,我完全被卡住了,谢谢!

4

3 回答 3

2

异常FileNotFoundException表示未找到您指定的文件。也许它不在您的程序正在执行的同一目录中?也许它有某种后缀,例如.txt?尝试提供文件的完全限定路径,例如:

"/Users/bob.bobberton/RandomFloats"
于 2013-09-06T20:43:42.787 回答
0

看起来你的问题从这条线开始

File rf = new File("RandomFloats");

您没有将有效路径传递给 File 构造函数,这就是下一行的原因

Scanner kb = new Scanner(rf); 

正在引发 filenotfound 异常

你应该看看这些链接

http://docs.oracle.com/javase/7/docs/api/java/io/File.html http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html

于 2013-09-06T20:44:22.703 回答
0

当您尝试读取文件时,您需要提供它的扩展名,以便将其识别为文件而不是目录......这发生在我身上好几次

File rf = new File("RandomFloats.whatEver");
于 2013-09-06T21:41:37.423 回答