ioexception: un privilège requirejs n’est pas détenu par le client lors de l’écriture d’un fichier en Java

J’ai recherché beaucoup de questions similaires, mais je n’ai pas pu résoudre mon problème.

J’essaie d’écrire quelque chose dans un fichier, ce qui me donne une erreur.

Mon code

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 itr = account.listIterator();//account is a List object while (itr.hasNext()) { Ssortingng element = itr.next(); out.write(element); out.newLine(); } out.close(); } catch (IOException e) { e.printStackTrace(); } 

L’erreur est

 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) 

Cette erreur se produit uniquement lorsque file_name est C:\\Test.txt mais lorsque je change cette valeur file_name en C:\\New Folder\\Test.txt (où New Folder est un dossier dans le lecteur C), cela fonctionne correctement.

Pourquoi ne pouvons-nous pas créer un fichier dans C Drive?

Depuis Windows Vista, la configuration par défaut de Windows ne permet pas aux utilisateurs de créer des fichiers à la racine du lecteur C: avec des privilèges standard. Si vous devez créer un fichier à la racine d’un disque, vous devez disposer des droits d’administrateur et exécuter l’application en tant qu’administrateur (ou élever les privilèges d’administrateur d’une autre manière).

L’archivage de compte d’utilisateur est important dans ce cas, ne jouez pas avec les lecteurs c et d font tout dans votre région