Java FileNotFoundException с абсолютным путем - не удается прочитать или выполнить, но файл существует
Я уверен, что на это ответили, но десять разных стратегий не сработали в этом вопросе.
Если в качестве абсолютного пути к файлу я использую C:\Users\Anny\Dropbox\SocialMediaOcto\instruments\Trees\ инструкция.txt, IDEA не сможет прочитать или выполнить по этому пути. Если я возьму тот же путь и вставлю его в проводник Windows, он сразу запустится. Я не хочу сосредотачиваться на рабочем каталоге, так как этот файл работает как файл конфигурации программы, но замена косых черт обратными косыми чертами не работает, абсолютный путь все еще приводит меня к файлу, но IDEA не запускается.
Я в конце концов.
public static String generateFileName(String folder){
String filename = "";
List<String> hashtags = new ArrayList<>();
String instructions_file = "C:\Users\Anny\Dropbox\SocialMediaOcto\instructions\Trees\instructions.txt";
//does not return true-true, but can launch file on windows explorer..
System.out.println("FILE EXIST AND EXECUTE?" + new File(instructions_file).getAbsoluteFile().canRead() +" "+new File(instructions_file).getAbsoluteFile().canExecute());
System.out.println(new File(instructions_file).getAbsoluteFile());
//C:\Users\Anny\Dropbox\SocialMediaOcto\instructions\Trees\instructions.txt
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader(new File(instructions_file).getAbsoluteFile()));
РЕДАКТИРОВАТЬ После замены обратной косой черты на прямую, читатель все еще не может правильно прочитать или выполнить файл.
LOG: строка печатается: C:/Users/Anny/Dropbox/SocialMediaOcto/instructions/Bees/instructions.txt
java.io.FileNotFoundException: C:\Users\Anny\Dropbox\SocialMediaOcto\instructions\Bees\instructions.txt (The system cannot find the file specified)
1 ответ
Правильный URL:
String instructions_file = "C:/Users/Anny/Dropbox/SocialMediaOcto/instructions/Trees/instructions.txt";
Так как \
является escape-символом в Java. Если вы хотите использовать \
как персонаж, ты должен избежать этого сам.
Правильный URL v2:
String instructions_file = "C:\\Users\\Anny\\Dropbox\\SocialMediaOcto\\instructions\\Trees\\instructions.txt";
Что у тебя было:
String instructions_file = "C:\Users\Anny\Dropbox\SocialMediaOcto\instructions\Trees\instructions.txt";
читается Java как
"C:{something}sers{something}nny{something}ropbox{something}ocialMediaOcto{something}nstructions\Trees\instructions.txt"
По моему мнению, гораздо лучше использовать первый подход, поскольку он безопасен для платформы.