我正在尝试在 1,000,000 整体的文本文件中找到重击手。
出于某种原因,当我运行它时,永远不会找到该文件。
我不明白我做错了什么,所以任何帮助都是最好的。
我相信整个程序的代码是正确的,除非它找不到文件。
public class HH1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int k = 100;
int count = 0;
ArrayList<Integer> intList = new ArrayList<Integer>();
File file = null;
Scanner s = null;
try {
file = new File("IT179ProjectData.txt");
s = new Scanner(file);
} catch (Exception e) {
System.out.println("Error");
System.exit(0);
}
//Taking values from text file and inserting into an array list
while (s.hasNext()) {
intList.add(s.nextInt());
}
//Creates an array from the array list
Object[] array = intList.toArray();
//Sorts the array
Arrays.sort(array);
int n = array.length;
int hh = n / k;
System.out.println("The heavy hitters from the IT179ProjectData are:");
//Traverses the Array
for (int i = 0; i < array.length; i++) {
if (count == hh && array[i] == array[i++]) {
System.out.print(array[i] + " ");
count++;
} else if (count != hh && array[i] == array[i++]) {
count++;
} else {
count = 0;
}
}
}
}
请帮忙!
EDIT !!!!!以下是我的代码的错误消息:
/NetBeansProjects/IT179.Proj/IT179ProjectData.txt
Error file not found
java.io.FileNotFoundException: IT179ProjectData.txt (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.util.Scanner.<init>(Scanner.java:611)
at it179.proj.HH1.main(HH1.java:35)
/home/ADILSTU/bsdwork/.cache/netbeans/8.1/executor-snippets/run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)
答案 0 :(得分:5)
当您尝试加载文件并且您收到的FileNotFoundException未找到/不存在时,问题通常是Java正在查找的目录不是您希望它查找的目录在这一行之后:
file = new File("IT179ProjectData.txt");
尝试拨打
System.out.println(file.getAbsolutePath())
;
我相信你会发现这样做会出现什么问题。
另请注意,您可以使用System.getProperty("user.dir");