FileReader не может найти файл, даже если он находится в рабочем каталоге - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь прочитать файл, однако консоль выдает мне эту ошибку.

Exception in thread "main" java.io.FileNotFoundException: dataEx.txt (The system cannot find the file specified)

Это код, который я выполняю.

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

public class ReadTest {

    public static void main(String[] args) throws IOException {
        BufferedReader f = new BufferedReader(new FileReader("dataEx.txt" ));
    }
}

Это мой структура проекта

-project
  -ReadTest.java
  -dataEx.txt

1 Ответ

0 голосов
/ 29 января 2020

Рабочий каталог

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

Выполните следующий код, чтобы узнать, где он находится:

System.out.println(Paths.get("").toAbsolutePath());

Это путь к вашей текущей работе каталог. Затем сравните этот результат с вашими ожиданиями. Поймите, что ваше ожидание было неверным, и исправьте путь к вашему файлу или настройкам вашего рабочего каталога.

Трудно догадаться, где ваш каталог может находиться прямо сейчас. Может быть, в вашей папке bin, рядом с файлами .class. После выполнения приведенного выше фрагмента кода вы увидите.


NIO

Кстати, вы не знаете, что именно вы планируете делать с этим BufferedReader, но вас может заинтересовать более новый современный файловый API, вращающийся вокруг Files и Paths:

List<String> lines = Files.readAllLines(Paths.get("myFile.txt"));

. Он также имеет другие полезные служебные методы для File IO, намного лучше, чем громоздкий класс File и неуклюжий BufferedReader.

...