Exception java - почему

176
07 июня 2018, 07:30

Есть код:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class LogRead {
    public static void main(String[] args) throws IOException {
        String logs = getTextFromFile("\\home\\qa-1\\Logs.txt");
        Pattern regexLog = Pattern.compile("(^.{15}).(Activity:.)");
        for (String lg : severalLogs(logs)) {
            Matcher m = regexLog.matcher(lg);
            if (m.find()) {
                System.out.println(lg.replaceAll(String.valueOf(regexLog), "$1$2"));
            }
        }
    }
    public static String getTextFromFile(String fileName) throws IOException {
        return new String(Files.readAllBytes(Paths.get(fileName)));
    }
    public static String[] severalLogs(String text) {
        return text.split("\\n");
    }
}

выдает

Exception in thread "main" java.nio.file.NoSuchFileException: \home\qa-1\Logs.txt
    at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
    at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:215)
    at java.base/java.nio.file.Files.newByteChannel(Files.java:369)
    at java.base/java.nio.file.Files.newByteChannel(Files.java:415)
    at java.base/java.nio.file.Files.readAllBytes(Files.java:3207)
    at LogRead.getTextFromFile(LogRead.java:25)
    at LogRead.main(LogRead.java:10)

я так понимаю неверный путь к файлу. Но путь то верный. У меня убунту. В чем причина?

Answer 1
 String logs = getTextFromFile("\\home\\qa-1\\Logs.txt");

Всегда думал что в линукс системах слеши другие:

 String logs = getTextFromFile("/home/qa-1/Logs.txt");

А правильно и кошерно, путь указывать так, чтобы было платформо независимо:

String home = System.getProperty("user.home");
// inserts correct file path separator on *nix and Windows
// works on *nix
// works on Windows
java.nio.file.Path path = java.nio.file.Paths.get(home, "my", "app", "dir")
boolean directoryExists = java.nio.file.Files.exists(path);
READ ALSO
Вывод данных ИЗ TableView.Java

Вывод данных ИЗ TableView.Java

Как после редактирования данных пользоватилем таблицы TabbleView по нажатию на кнопку Save считать данные из таблицы TableView

214
Как скачать полученное фото в TelegramBot?

Как скачать полученное фото в TelegramBot?

Есть задача скачать фото которое было отправлено ботуПытаюсь делать и в результате появились вопросы

191
Разбить List на List по 10 элементов

Разбить List на List по 10 элементов

Есть листС каждым элементом я в отдельном потоке провожу работу

201
Ошибка в запросе или базе данных

Ошибка в запросе или базе данных

Ошибка происходит в запросе

296