我正在尝试访问一个文件来读取它并使用以下代码在其上写入:
RandomAccessFile file1 = new RandomAccessFile("C:\\lol.txt", "rw");
它返回一个错误“File not Found(IOException)”。
该文件存在且位于该文件夹中。我错过了什么?
答案 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)
RandomAccessFile
构造函数的javadoc说明了这一点:
FileNotFoundException - 如果模式为“r”但给定的字符串确实 不表示现有的常规文件,或者模式以“rw”开头 但是给定的字符串不表示现有的可写常规字符串 文件和该名称的新常规文件无法创建,或者如果有的话 打开或创建文件时发生其他错误
只需将文件移至其他位置,例如C:\Users\You
。