Почему File.separator использует неправильный символ?
Я пытаюсь добавить функциональность в большой кусок кода, и у меня странная проблема с разделителями файлов. При чтении файла в следующем коде работает на моем компьютере, но не работает, когда на сервере Linux. Когда на ПК я передаю это, и это работает:
fileName = "C:\\Test\\Test.txt";
Но когда я на сервере, я передаю это и получаю "Файл не найден", потому что инструкция BufferedReader/FileReader ниже меняет "/" на "\":
fileName = "/opt/Test/Test.txt";
System.out.println("fileName: "+fileName);
reader = new BufferedReader(new FileReader(new File(fileName)));
Создает этот вывод при запуске на сервере LINUX:
fileName: /opt/Test/Test.txt
Файл не найден: java.io.FileNotFoundException: \opt\Test\Test.txt (система не может найти указанный путь)
Когда я создаю простой файл Test.java, чтобы попытаться воспроизвести его, он ведет себя так, как ожидалось, поэтому что-то в более крупном коде приводит к тому, что строка BufferedReader/FileReader ведет себя так, как если бы он находился на ПК, а не в Linux. Есть идеи, что это может быть?
1 ответ
Я не вижу, где вы использовали File.separator. Попробуйте это вместо жесткого кодирования разделителей пути.
fileName = File.separator + "opt" + File.separator + "Test" + File.separator + "Test.txt";