FileNotFoundException, но файл присутствует по правильному пути - PullRequest
0 голосов
/ 30 мая 2020

Я новичок в программировании, каждый раз, когда пытаюсь прочитать файл. Я получаю FileNOtFoundException.

Где я могу ошибиться?

import java.io.*;
import java.util.Scanner;

public class ReadFile 
{
    public ReadFile()
    {
        readFile();
    }
    public void readFile()
    {
        String filename = "trees.txt";
        System.out.println(new File(".").getAbsolutePath()); //file is at this path.
        String name = "";
        try
        {
            FileReader inputFile = new FileReader(filename);
            Scanner parser = new Scanner(inputFile);
            while (parser.hasNextLine())
            {
                name = parser.nextLine();
                System.out.println(name);
            }
            inputFile.close();
        }
        catch (FileNotFoundException exception)
        {
            System.out.println(filename + " not found");
        }
    }
}

Есть ли другой способ прочитать файл?

Ответы [ 2 ]

0 голосов
/ 30 мая 2020

Попробуйте напечатать путь к файлу, который вы фактически пытаетесь открыть, чтобы быть уверенным, что файл существует в правильном месте.

String filename = "trees.txt";
File file = new File(filename);
System.out.println(file.getAbsolutePath());

Кроме того, вы закрываете FileReader внутри try, а не закрытие Scanner, если когда-либо произойдет какая-то ошибка, эти ресурсы никогда не будут закрыты, вам нужно поместить эти операторы закрытия в блок finally или лучше использовать try с ресурсами

0 голосов
/ 30 мая 2020

этот код

FileReader inputFile = new FileReader(filename);

Вы должны указать полный путь к файлу с именем filename, если он не откроет файл не в текущем рабочем каталоге, вы должны попробовать

FileReader inputFile = new FileReader(new File(new File("."), filename));
// defind new File(".") it mean you will you open file in current working directory  

вы можно узнать больше по адресу: Java, чтение файла из текущего каталога?

...