Java чтение txt.file - доступ запрещен?

Я создал файл txt, который сохранил в папке Мои документы на своем компьютере. Я пытаюсь прочитать файл txt через FileReader и BufferedReader. Однако, когда я пытаюсь запустить программу, я получаю сообщение об ошибке:

java.io.FileNotFoundException: <filelocation> (Access is denied)

Кто-нибудь знает, что вызывает это, и как я могу решить проблему? Я пытался сохранить документ и в других местах, но всегда получаю это сообщение. Я уверен, что путь к файлу введен правильно.


person Kristian    schedule 25.10.2011    source источник
comment
Я думаю, что это исключение говорит обо всем FileNotFoundException. Можете ли вы показать код плз?   -  person Yaroslav Boichuk    schedule 25.10.2011
comment
Это может помочь: stackoverflow.com/questions/ 4281143/   -  person G_H    schedule 25.10.2011
comment
Можете ли вы добавить соответствующий код того, где вы получаете доступ к файлу? В вашем сообщении об исключении также отсутствует некоторая информация (например, имя файла) ... можете ли вы также добавить полную трассировку стека?   -  person CoolBeans    schedule 25.10.2011
comment
Спасибо за комментарии. Что касается всего сообщения об ошибке, то оно выглядит следующим образом: Ошибка при чтении: java.io.FileNotFoundException: C:\Users\Kristian\Documents (Доступ запрещен). Однако большая часть моего кода написана не на английском языке, поэтому мне потребуется некоторое время, если вы хотите, чтобы я выложил код полностью. Возможно, я могу попробовать некоторые из методов, предложенных в ссылке, предоставленной G_H.   -  person Kristian    schedule 25.10.2011
comment
Вы правильно закрываете поток после прочтения? C:\Users\Kristian\Documents (доступ запрещен) похоже, у вас проблемы с пробелами в пути. Пожалуйста, опубликуйте строку, в которой создается имя файла.   -  person Stephan    schedule 25.10.2011


Ответы (4)


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

person Ashwinee K Jha    schedule 25.10.2011
comment
Большое спасибо. Это действительно помогло! Единственное, что сейчас я получаю что-то немного загадочное в отпечатке. На моем выходе написано: «Студент 20: 30,4 Студент 19: 87,6 Студент 21: 91,34 Однако символы «» не должны появляться. Что может быть причиной этого? - person Kristian; 25.10.2011
comment
Возможно, ваш файл имеет какой-то символ, который консоль eclipse не поддерживает. Вы можете настроить кодировку для консоли в диалоговом окне запуска от имени. Можете ли вы обновить вопрос с содержимым файла и программы, если проблема не устранена. - person Ashwinee K Jha; 25.10.2011
comment
Привет. Еще раз спасибо. Я попытался открыть файл в другой программе Eclipse, которую я также использую для чтения текстовых файлов, и здесь все работает гладко. Таким образом, поскольку теперь я могу правильно запустить файл здесь, я думаю, что просто остановлюсь на этом. Я очень ценю вашу помощь, хотя! - person Kristian; 25.10.2011

java.io.FileNotFoundException: C:\Users\Kristian\Documents (доступ запрещен)

Вы пытаетесь прочитать каталог, а не файл .txt.

person user207421    schedule 25.10.2011

может быть 2 типа проблемы.

  1. ваш путь содержит пробел в имени папки или файла. вы можете решить эту проблему, используя имя файла, отличное от 8dot3, с помощью команды dir /p /x в командной строке пути к этой папке.
  2. вы можете сохранить форму в папке вашего проекта и использовать относительный путь ./txt.file. если у вас есть файл по пути, скажем, <project folder>/input/txt.file, ваш относительный путь будет ./input/txt.file. Если это не сработает, попробуйте погуглить код для чтения файла, и вы обнаружите свою ошибку.
person Naveen Babu    schedule 25.10.2011
comment
Большое спасибо. Цените ваши советы. Вместе с приведенной выше помощью я теперь могу правильно запустить это в одной из моих программ Eclipse. - person Kristian; 25.10.2011
comment
@EJP Пожалуйста, найдите обоснование моего ответа File file = new File(./src/CollectionUtils.java); System.out.println(file.getAbsolutePath() + file.isFile()); Файл файл1 = новый файл (./src/CollectionUtils.java); System.out.println(file1.getAbsolutePath() + file1.isFile()); **пример вывода ** /Users/nbabu/workspace/FunProject/./ src/CollectionUtils.javafalse /Users/nbabu/workspace/FunProject/./src/CollectionUtils.javatrue - person Naveen Babu; 26.09.2017
comment
@NaveenBabu Какой ответ? Ни один из пунктов в вашем ответе не определяет реальную проблему, и беспорядок кода в вашем комментарии остается необъяснимым. - person user207421; 05.11.2018

Возможно, вам нужно изменить настройки безопасности в вашей папке. Перейдите в каталог, щелкните правой кнопкой мыши свойства, выберите «Безопасность», «Дополнительно» и «Изменить разрешение», чтобы все дочерние зависимости наследовали изменения безопасности.

person user3621271    schedule 28.03.2015