Привет, Ive создал программу Java, которая считывает строки из CSV в качестве записей данных. Проблема im get заключается в том, что программа отлично работает в консоли eclipse, однако, когда я пытаюсь запустить проблему из cmd с помощью компилятора Java, я не работаю там, где мой код указывает местоположение файла CSV, там отображается ошибка там как неизвестная. Ive пробовал все, например, перемещать файл в другой пакет или использовать какой-либо другой код для чтения файла. Im получает тот же результат, что и в eclipse, но в фактическом cmd он не работает. Bellow - это ERROR и метод, который читает файл.Входной поток не работает в командной строке
java.io.FileNotFoundException: src\PostCodeENW.csv (The system cannot find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at Java.io.FileReader.<init>(Unknown Source)
public void loadfile() {
System.out.println(System.getProperty("user.dir"));
String csvFile = "src/PostcodeENW.csv";
BufferedReader br = null;
String line = "";
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
String[] ar = line.split("/");
PostCode = ar[0].trim().replaceAll(" ", " ");
String[] ar1 = PostCode.split("\\s");
String PostCodeP1 = ar1[0];
String PostCodeP2 = ar1[1];
int Easting = Integer.parseInt(ar[1]);
int Northing = Integer.parseInt(ar[2]);
String Ward = ar[3];
Location geo = new Location(PostCodeP1, PostCodeP2, Easting, Northing, Ward);
map.put(geo.getkey(), geo.getValue());
// System.out.println(PostCodeP1 + " " + PostCodeP2 + " " + Easting + " " + Northing + " " + Ward);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("Done Adding all records");
System.out.println("Database currently holds: " + map.size()); //Test how much elements are currently in the HashMap
}
Наконец-то это работает, но я не понимаю, когда вы делаете новый проект в Eclipse вы получаете папку с именем src, а затем по умолчанию я импортировал CSV-файл, и он автоматически включается в пакет по умолчанию. Если я действительно смотрю в моей папке проекта, у меня есть 2 папки и 2 файла, называемые bin, src, .classpath и .project. Значит ли это, что я должен скопировать содержимое bin в каталог и удалить папку bin? Или мне нужно изменить код abit? – user3112844
Если вы счастливы, что файл Java запускается из eclipse, тогда нет необходимости удалять bin. Но если вы хотите запустить файл Java из командной строки, вам нужно скопировать содержимое bin в src, чтобы файл Java мог видеть файл csv. Лично я бы рекомендовал скопировать файл csv в папки bin и src. –