Чтение из файла в eclipse
Я пытаюсь читать из текстового файла для ввода данных в свою программу java. Тем не менее, eclipse постоянно дает мне ошибку Source not found, независимо от того, где я помещаю файл.
Я сделал дополнительную папку с источниками в каталоге проекта, файл находится в файле как в файле bin, так и в файле bin, и он все еще не может его найти.
Я даже скопировал его на свой рабочий стол и попробовал указать затмение там, когда он попросил меня просмотреть исходный путь поиска.
Независимо от того, что я делаю, он не может найти файл.
здесь мой код в случае, если это уместно:
System.out.println(System.getProperty("user.dir"));
File file = new File("file.txt");
Scanner scanner = new Scanner(file);
Кроме того, он говорит, что каталог пользователя является каталогом проекта, и там есть копия.
Я не знаю, что делать.
Спасибо,
Alex
после попытки повторного предложения и обновления снова меня встретили множество ошибок.
FileNotFoundException(Throwable).<init>(String) line: 195
FileNotFoundException(Exception).<init>(String) line: not available
FileNotFoundException(IOException).<init>(String) line: not available
FileNotFoundException.<init>(String) line: not available
URLClassPath$JarLoader.getJarFile(URL) line: not available
URLClassPath$JarLoader.access$600(URLClassPath$JarLoader, URL) line: not available
URLClassPath$JarLoader$1.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]
URLClassPath$JarLoader.ensureOpen() line: not available
URLClassPath$JarLoader.<init>(URL, URLStreamHandler, HashMap) line: not available
URLClassPath$3.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]
URLClassPath.getLoader(URL) line: not available
URLClassPath.getLoader(int) line: not available
URLClassPath.access$000(URLClassPath, int) line: not available
URLClassPath$2.next() line: not available
URLClassPath$2.hasMoreElements() line: not available
ClassLoader$2.hasMoreElements() line: not available
CompoundEnumeration<E>.next() line: not available
CompoundEnumeration<E>.hasMoreElements() line: not available
ServiceLoader$LazyIterator.hasNext() line: not available
ServiceLoader$1.hasNext() line: not available
LocaleServiceProviderPool$1.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]
LocaleServiceProviderPool.<init>(Class<LocaleServiceProvider>) line: not available
LocaleServiceProviderPool.getPool(Class<LocaleServiceProvider>) line: not available
NumberFormat.getInstance(Locale, int) line: not available
NumberFormat.getNumberInstance(Locale) line: not available
Scanner.useLocale(Locale) line: not available
Scanner.<init>(Readable, Pattern) line: not available
Scanner.<init>(ReadableByteChannel) line: not available
Scanner.<init>(File) line: not available
используемый код:
System.out.println(System.getProperty("user.dir"));
File file = new File(System.getProperty("user.dir") + "/file.txt");
Scanner scanner = new Scanner(file);
Ответы
Ответ 1
Вы пытались обновить (щелкнуть правой кнопкой мыши → обновить) папку проекта после копирования файла там? Это будет SYNC вашей файловой системы с внутренней файловой системой Eclipse.
Когда вы запускаете проекты Eclipse, CWD (текущий рабочий каталог) является корневым каталогом проекта. Не каталог bin. Не каталог src, но корневой каталог.
Кроме того, если вы находитесь в Linux, помните, что его файловые системы обычно чувствительны к регистру.
Ответ 2
Пробовали ли вы использовать абсолютный путь:
File file = new File(System.getProperty("user.dir") + "/file.txt");
Ответ 3
Вы ищете/читаете файл "fiel.txt" в каталоге выполнения (где класс хранится, я думаю).
Если вы хотите прочитать файл в заданной директории, вы должны сказать следующее:
File file = new File(System.getProperty("user.dir")+"/"+"file.txt");
Вы также можете указать каталог с относительным путем, например "./images/photo.gif" для поддиректории, например.
Обратите внимание, что для разделителя есть также свойство (с жестким кодом "/" в моем примере)
С уважением
Гийом
Ответ 4
Я использую eclipse, и я застрял в том, что не умею читать файлы из-за "не найденного исключения". Что я сделал для решения этой проблемы, я переместил файл в корень моего проекта. Надеюсь, это поможет.
Ответ 5
В коде нет ничего плохого, следующее работает отлично для меня, когда у меня есть файл .txt в каталоге user.dir.
import java.io.File;
import java.util.Scanner;
public class testme {
public static void main(String[] args) {
System.out.println(System.getProperty("user.dir"));
File file = new File("file.txt");
try {
Scanner scanner = new Scanner(file);
} catch (Exception e) {
System.out.println(e);
}
}
}
Не доверяйте Eclipse тем, где он говорит, что файл есть. Выйдите в фактическую файловую систему с помощью проводника Windows или ее эквивалента и проверьте.
Основываясь на вашем редактировании, я думаю, нам нужно также просмотреть ваши инструкции импорта.
Ответ 6
вам просто нужно получить абсолютный путь к файлу, так как файл, который вы ищете, не существует в рабочей среде eclipse runtime
вы можете использовать методы getProperty() или getLocationURI() для получения абсолютного пути файла
Ответ 7
Иногда, даже если файл находится в правильном каталоге, по-прежнему существует исключение "файл не найден". Одна вещь, которую вы можете сделать, - это удалить текстовый файл внутри eclipse, где ваши классы, с левой стороны. Он попросит вас, хотите ли вы скопировать, нажмите "Да". Иногда это помогает.