Чтение из файла в 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, где ваши классы, с левой стороны. Он попросит вас, хотите ли вы скопировать, нажмите "Да". Иногда это помогает.