java FileNotFoundException не найдет файл в том же проекте

Я пишу программу для моего класса компьютерных наук, и я продолжаю получать ту же ошибку.

Exception in thread "main" java.io.FileNotFoundException: data.txt (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at java.util.Scanner.<init>(Scanner.java:636)
    at Search.main(Search.java:18)

Вот начало моего кода:

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;
import java.io.IOException;
public class Search{
    public static void main(String[] args)throws IOException{
        Scanner inData = new Scanner(new File("data.txt"));

        String data=inData.nextLine();
        String[] arr = data.split(" ");   

        while(inData.hasNext()){
            String search=inData.nextLine();
            int len=search.length();
            ArrayList<String> result = new ArrayList<String>();

У меня есть текстовый файл в том же Java-проекте, поэтому я не уверен, в чем проблема, и я пытался переместить местоположение файла, но ничего не работает.


person OoOoOoOoOoO    schedule 07.06.2015    source источник
comment
у вас есть файл на корневом уровне проекта?   -  person Thusitha Thilina Dayaratne    schedule 07.06.2015
comment
Создайте исходную папку, как описано в этом сообщении. Теперь получите доступ к файлу, используя Scanner scanner = new Scanner ( Search.class.getResourceAsStream ( "data.txt" ) ); Или просто поместите файл в папку bin.   -  person nIcE cOw    schedule 07.06.2015
comment
@ThusithaThilinaDayaratne Да   -  person OoOoOoOoOoO    schedule 07.06.2015
comment
@nIcEcOw Я получаю исключение java.lang.NullPointerException, когда делаю это   -  person OoOoOoOoOoO    schedule 07.06.2015
comment
@OoOoOoOoOoO: Если я выполню шаги, упомянутые в моем предыдущем комментарии, то все будет работать нормально, хотя мне придется использовать scanner = new Scanner ( ShowFile.class.getResourceAsStream ( "/files/data.txt" ) );. Вот рабочий проект. Этот проект сделан в Eclipse Mars. Я только что создал исходную папку с именем resources внутри нее. Я вручную создал папку files и скопировал data.txt файл в эту папку files.   -  person nIcE cOw    schedule 07.06.2015


Ответы (2)


Рабочий путь вашего исполняемого кода можно определить с помощью этого кода:

System.out.println(new File(".").getAbsolutePath());

Обычно это цель или классы или папка bin, в зависимости от вашей IDE.

person B4dT0bi    schedule 07.06.2015
comment
Как только я это узнаю, как я могу это изменить или поместить туда текстовый файл? - person OoOoOoOoOoO; 07.06.2015
comment
вы просто просматриваете свою файловую систему в папку ... большую часть времени она находится в вашем рабочем пространстве. и поместите туда data.txt . Каков результат этого System.out.println.. пожалуйста? - person ; 07.06.2015

Вы должны поместить файл data.txt в корень вашего java-проекта eclipse вне вашей папки /src/.

введите здесь описание изображения

person Community    schedule 07.06.2015
comment
это как на картинке? - person ; 07.06.2015
comment
Да, это выглядит именно так: Search, src, JRE..., data.txt - person OoOoOoOoOoO; 07.06.2015
comment
попробовать new File("/data.txt") в Scanner ? - person ; 07.06.2015
comment
является ли data.txt файлом только для чтения? проверить свойства data.txt? ты в какой ОС? - person ; 07.06.2015
comment
то, что когда-либо предлагал вам OSryx, должно работать. Проверьте эти две ссылки 1>stackoverflow.com/questions/22978170 / 2›stackoverflow.com/questions/19871955/ - person Bacteria; 07.06.2015