Система не может найти файл, указанный в java - программирование
Подтвердить что ты не робот

Система не может найти файл, указанный в java

Я создаю программу, которая открывает и читает файл. Это мой код:

import java.io.*;

public class FileRead{
    public static void main(String[] args){
        try{
            File file = new File("hello.txt");
            System.out.println(file.getCanonicalPath());
            FileInputStream ft = new FileInputStream(file);

            DataInputStream in = new DataInputStream(ft);
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String strline;

            while((strline = br.readLine()) != null){
                System.out.println(strline);
            }
            in.close();
        }catch(Exception e){
            System.err.println("Error: " + e.getMessage());
        }
    }
}

но когда я запускаю, я получаю эту ошибку:

C:\Users\User\Documents\Workspace\FileRead\hello.txt
Error: hello.txt (The system cannot find the file specified)

my FileRead.java и hello.txt, где в том же каталоге, который можно найти в:

C:\Users\User\Documents\Workspace\FileRead

Мне интересно, что я делаю неправильно?

4b9b3361

Ответ 1

Я скопировал ваш код, и он работает нормально.

Я подозреваю, что у вас просто проблема с фактическим именем файла hello.txt, или вы работаете в неправильном каталоге. Рассмотрим проверку методом, предложенным @Eng.Fouad

Ответ 2

Попробуйте перечислить имена всех файлов в каталоге, вызвав:

File file = new File(".");
for(String fileNames : file.list()) System.out.println(fileNames);

и посмотрите, найдете ли вы свои файлы в списке.

Ответ 3

Как правило, просто указание имени файла внутри конструктора файлов означает, что файл находится в том же каталоге, что и файл java. Однако при использовании IDE, таких как NetBeans и Eclipse, то есть не в том случае, если вы должны сохранить файл в каталоге папки проекта. Поэтому я думаю, что проверка поможет решить вашу проблему.

Ответ 4

Вам нужно указать абсолютный путь к файлу, где находится файл.

        File file = new File("C:\\Users\\User\\Documents\\Workspace\\FileRead\\hello.txt");

Ответ 5

В правой части IDE щелкните файл, который вы хотите прочитать, и выберите "путь копирования", затем вставьте его в свой код.

Обратите внимание, что окна скрывают расширение файла, поэтому, если вы создаете текстовый файл "myfile.txt", он может быть фактически сохранен как "myfile.txt.txt"

Ответ 6

Как вы запускаете программу?

Это не файл java, который выполняется, а файл .class, который создается путем компиляции java-кода. Вам нужно будет указать абсолютный путь, например user1420750, или относительный путь к вашему каталогу System.getProperty("user.dir"). Это должен быть рабочий каталог или каталог, в котором вы запускали команду java.

Ответ 7

Когда вы запускаете банку, ваш основной класс сам становится args [0], и ваше имя файла появляется сразу после.

У меня была такая же проблема: я мог найти файл, когда был предоставлен абсолютный путь от eclipse (потому что я имел в виду файл как args [0]). Тем не менее, когда я запускаю то же самое из jar, он пытался найти мой основной класс - вот когда я понял, что должен читать свой файл из args [1].

Ответ 8

Сначала создайте папку так же, как и указанный вами путь. после этого создайте файл

File dir = new File("C:\\USER\\Semple_file\\");
File file = new File("C:\\USER\\Semple_file\\abc.txt");

if(!file.exists())
{
    dir.mkdir();
    file.createNewFile();
    System.out.println("File,Folder Created.);
}