程序将文件内容读入数组,并显示控制台和写入文件

时间:2013-09-06 20:36:55

标签: java arrays

我正在编写一个程序,提示用户输入文件名。我必须假设该文件包含一个表示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文件不会被读入数组。请帮帮我,我完全陷入困境,谢谢!

3 个答案:

答案 0 :(得分:2)

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

"/Users/bob.bobberton/RandomFloats"

答案 1 :(得分: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

答案 2 :(得分:0)

当你试图读取一个文件时,你需要提供它的扩展名,以便它被识别为文件而不是目录......这种情况发生在我身上好几次

File rf = new File("RandomFloats.whatEver");