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