2013-08-27 3 views
2

Я пытаюсь получить доступ к файлу, чтобы читать и писать на нем, используя этот код:JAVA RandomAccessFile бросает IOException, когда построили

RandomAccessFile file1 = new RandomAccessFile("C:\\lol.txt", "rw"); 

Он возвращает мне ошибку «Файл не найден (IOException)».

Файл существует, и он находится в этой точной папке. Что мне не хватает?

+3

У вас есть разрешение на запись в файл? –

+0

У вас есть право на капитализацию? – rolfl

+0

Да, у меня есть разрешение, и капитализация верна. –

ответ

3

Если вы не запустите свое приложение Java в качестве администратора, у вас не будет доступа на запись к C:.

Следующий код

public static void main(String[] args) throws Exception { 
    RandomAccessFile file1 = new RandomAccessFile("C:\\lol.txt", "rw"); 
} 

даст вам

Exception in thread "main" java.io.FileNotFoundException: C:\lol.txt (Access is denied) 
at java.io.RandomAccessFile.open(Native Method) 
at java.io.RandomAccessFile.<init>(Unknown Source) 
at java.io.RandomAccessFile.<init>(Unknown Source) 
at Test.Main.main(Main.java:79) 

The javadoc для RandomAccessFile конструктора состояний это:

FileNotFoundException - if the mode is "r" but the given string does not denote an existing regular file, or if the mode begins with "rw" but the given string does not denote an existing, writable regular file and a new regular file of that name cannot be created, or if some other error occurs while opening or creating the file

Просто переместите файл в другое место, как C:\Users\You.

+0

Исключение в потоке «основного» java.lang.Error: Нерешенные проблемы компиляции: \t Необработанное исключение типа FileNotFoundException \t в man.main (man.java:10) –

+2

@JohnBlack 'FileNotFoundException' является проверяемым исключение. Вам нужно либо обернуть его в блок «try-catch», либо сделать ваш метод реконструировать его, объявив, что метод «throws FileNotFoundException», как я показал в своем ответе (я использовал «Исключение», потому что это родительский класс) , –

+0

Хорошо, я поместил throw IOException в основной класс, и теперь он работает, странно. –

Смежные вопросы