ioexception:在用java编写文件时,客户不需要特权

我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_nameC:\\Test.txt但是当我将这个file_name值改为C:\\New Folder\\Test.txt (其中New Folder是C驱动器里面的一个文件夹)时,就会出现这种错误。

为什么我们无法在C驱动器中创build文件?

从Windows Vista开始,默认的Windows设置不允许用户使用标准权限在C:驱动器的根目录中创建文件。 如果您需要在磁盘的根目录中创建文件,则需要管理员权限并以管理员身份运行该应用程序(或以其他方式提升管理权限)。