这是我的代码:
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class ArrayAnalyser {
public static void main(String[] args) throws IOException {
int size;
double[] array;
String fileName = "C:\\Users\\kengock\\Desktop\\Numbers.txt";
size = getLineNumber(fileName);
array = new double[size];
File file = new File(fileName);
Scanner infile = new Scanner(file);
int index = 0;
while (infile.hasNext()) {
array[index] = infile.nextDouble();
index++;
}
infile.close();
System.out.println("The min is " + getSmallest(array));
System.out.println("The average is " + getAverage(array));
}
public static int getLineNumber(String fileName) throws IOException {
int size = 0;
File file = new File(fileName);
Scanner infile = new Scanner(file);
while (infile.hasNext()) {
size++;
infile.nextLine();
}
infile.close();
return size;
}
public static double getSmallest(double[] array) {
double min = array[0];
for (int i = 0; i < array.length; i++) {
if (array[i] < min)
min = array[i];
}
return min;
}
public static double getAverage(double[] array) {
double sum = 0;
for (int i = 0; i < array.length; i++) {
sum += (array[i]);
}
return sum / array.length;
}
}
这是我收到的错误消息:
C:\ Users \ kengock \ Desktop>线程“ main”中的java ArrayAnalyser异常 java.io.FileNotFoundException:C:\ Users \ kengock \ Desktop(访问被拒。) java.base / java.io.FileInputStream.open0(本机方法)位于 java.base / java.io.FileInputStream.open(FileInputStream.java:212)在 java.base / java.io.FileInputStream。(FileInputStream.java:154)在 java.base / java.util.Scanner。(Scanner.java:639)在 ArrayAnalyser.getLineNumber(ArrayAnalyser.java:33)在 ArrayAnalyser.main(ArrayAnalyser.java:13)
我应该如何处理文件路径?
答案 0 :(得分:0)
在下面的代码行中,您仅提及了文件的路径,但没有提及诸如abc.txt
之类的名称
String fileName="C:\\Users\\kengock\\Desktop";
应该像:-
String fileName="C:\\Users\\kengock\\Desktop\\abc.txt";
答案 1 :(得分:0)
public class ArrayAnalyser {
public static void main(String[] args) throws IOException {
File file = new File("c:/Users/kengock/Desktop/Numbers.txt");
double[] arr = readArrayFromFile(file);
System.out.println(Arrays.toString(arr));
System.out.format(Locale.ENGLISH, "The min is %.2f\n", getSmallest(arr));
System.out.format(Locale.ENGLISH, "The average is %.2f\n", getAverage(arr));
}
public static double[] readArrayFromFile(File file) throws FileNotFoundException {
List<Double> numbers = new ArrayList<>();
try (Scanner scan = new Scanner(file)) {
scan.useLocale(Locale.ENGLISH);
while (scan.hasNext())
numbers.add(scan.nextDouble());
}
return numbers.stream().mapToDouble(i -> i).toArray();
}
public static double getSmallest(double[] arr) {
return Arrays.stream(arr).min().orElse(0);
}
public static double getAverage(double[] arr) {
return Arrays.stream(arr).average().orElse(0);
}
}