我search了很多类似的问题,但是解决不了我的问题。
我正在试图写一个文件,这给了我错误。
我的代码
try { File f = new File(file_name); f.createNewFile(); //System.out.println("Hello"); f.setWritable(true); FileWriter fstream = new FileWriter(f); BufferedWriter out = new BufferedWriter(fstream); ListIterator<String> itr = account.listIterator();//account is a List object while (itr.hasNext()) { String element = itr.next(); out.write(element); out.newLine(); } out.close(); } catch (IOException e) { e.printStackTrace(); }
错误是
java.io.IOException: A required privilege is not held by the client at java.io.WinNTFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(Unknown Source) at com.example.Test.main(Test.java:25)
这个错误只有当file_name
是C:\\Test.txt
但是当我将这个file_name
值改为C:\\New Folder\\Test.txt
(其中New Folder
是C驱动器里面的一个文件夹)时,就会出现这种错误。
为什么我们无法在C驱动器中创build文件?
从Windows Vista开始,默认的Windows设置不允许用户使用标准权限在C:驱动器的根目录中创建文件。 如果您需要在磁盘的根目录中创建文件,则需要管理员权限并以管理员身份运行该应用程序(或以其他方式提升管理权限)。