Невозможно получить путь, даже если он правильный - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь получить путь к файлу, чтобы убедиться, что он такой же, я даже использовал функцию для возврата пути к файлу, хотя путь к файлу правильный, он никогда не работает, я пробовал чтобы удалить .txt, просто иметь имя файла (поскольку оно находится в том же пакете, что и этот класс), но, похоже, ничего не работает.

Вот код:

StringBuilder contentBuilder = new StringBuilder();
try 
{
    String filetest="text.txt";
    Path pathToFile = Paths.get(filetest);
    String name = pathToFile.toAbsolutePath().toString();
    System.out.println("Path name: " + name);

    Stream<String> stream = Files.lines( Paths.get(name), StandardCharsets.UTF_8);
    stream.forEach(s -> contentBuilder.append(s).append("\n"));
    String filename = contentBuilder.toString();
    System.out.println(filename);
}
catch (IOException e) 
{
    e.printStackTrace();
    System.out.println("Error: " + e);
}

Вывод

Path name: C:\Users\Dias\eclipse-workspace\pds\text.txt
java.nio.file.NoSuchFileException: C:\Users\Dias\eclipse-workspace\pds\text.txt
    at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
    at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
    at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
    at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:230)
    at java.nio.file.Files.newByteChannel(Files.java:361)
    at java.nio.file.Files.newByteChannel(Files.java:407)
    at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
    at java.nio.file.Files.newInputStream(Files.java:152)
    at java.nio.file.Files.newBufferedReader(Files.java:2784)
    at java.nio.file.Files.lines(Files.java:3744)
    at lab7.Client.main(Client.java:23)
Error: java.nio.file.NoSuchFileException: C:\Users\Dias\eclipse-workspace\pds\text.txt

1 Ответ

1 голос
/ 22 апреля 2020

Если это ожидаемый путь

  C:\Users\Dias\eclipse-workspace\pds\text.txt

, то объяснение, несомненно, заключается в том, что файл не существует.

Если это не ожидаемый путь, то объяснение в том, что вам нужно либо:

  1. Введите правильный путь к вашей программе, либо

  2. Измените текущий рабочий каталог

'toAbsolutePath' не оглядывается и не находит файл, поэтому ему известен абсолютный путь; скорее он видит, что указанный вами путь является относительным, и добавляет к нему префикс текущего рабочего каталога.

...