I’ve searched the internet for roughly an hour and a half now, and I can’t for the life of me figure out where I’ve gone wrong.. Help!!
My problem is that every time I try and run it I don’t receive an error until it searches for the file and without fail, it replies “File not found.” I’m on a MAC I think I’m typing the directory in properly but something is messed up..
(When opening numEven.dat)
For my input I’ve tried “numEven.dat” (placing the dat file in the same directory as the java file)
I’ve also tried “/Users/java/numEven.dat” and “Users/java/numEven.dat”
I know it is in that directory. What am I doing wrong?
Main Class file:
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
public class StatDriver
{
public static void main(String[] args)
{
String fileName = "";
Scanner scan = new Scanner(System.in);
double[] array = new double[20];
System.out.print(" Enter file name: ");
fileName = scan.next();
System.out.println("\n \n \n \n My Grades - View Statistics");
System.out.println(" ------------------------");
// int valueCount = readFile(array,fileName);
array = readFile(array, fileName);
Stat stat = new Stat(array, array.length);
// call each calc on Stat class and display results for each method
stat.calcAvg();
stat.calcMedian();
stat.findMax();
stat.findMin();
// print the return values for each of the above out to the user
}
public static double[] readFile(double[] array, String fileName)
{
int valueCount = 0;
FileIO importFile = new FileIO ();
importFile.main(array, fileName);
System.out.println(array);
valueCount = array.length;
// return valueCount;
return array;
}
}
FileIO class:
import java.util.Scanner;
import java.io.*;
public class FileIO
{
public void main (double[] array, String fileName)
{
double [] num = new double[5];
Scanner inFile;
int i = 0;
try
{
System.out.println(fileName);
inFile = new Scanner(new File("fileName"));
while(inFile.hasNextDouble())
{
array[i] = inFile.nextDouble();
i++;
}
inFile.close();
for(int x = 0; x < i; x++)
System.out.println(" " + num[x]);
}
catch(FileNotFoundException e)
{
System.out.println (" File not found");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println (" array index too large");
}
}
}
Try by changing
with
in the method
FileIO.mainOther than that (having no link to the problem), you could make the method
FileIO.mainstatic, and take advantage of Java collections to avoid hardcoding the number of elements of thedoubleyou want to read from the file. In the same method you are declaring a variabledouble[] numbut not using it at all.