2016-05-19 7 views
0

Ich versuche, eine Datei zu erstellen und dann in einem FileOutputStream zu verwenden. Standardmäßig wird die Datei jedoch ohne Lese- und Schreibberechtigungen erstellt, was zu einem Fehler bei Zugriff verweigert führt. Dieses Problem tritt nur auf meinem PC auf und ich bin daher zuversichtlich, dass es sich nicht um einen Code handelt. Gibt es irgendwelche Einstellungen, die dieses Problem beheben können?Java kann keine Ausgabedatei erstellen: Zugriff verweigert

File f = new File("test.txt"); 
final OutputStream testStream = new FileOutputStream(f); 

den Code unten Lauf false zurück:

File f = new File("test.txt"); 
f.canRead();  

Dies ist der Fehler, den ich immer bin, wenn die Datei in einem Outputstream zu verwenden versuchen:

java.io.FileNotFoundException: test.txt (Access is denied) 
     at java.io.FileOutputStream.open0(Native Method) 
     at java.io.FileOutputStream.open(FileOutputStream.java:270) 
     at java.io.FileOutputStream.<init>(FileOutputStream.java:213) 
     at java.io.FileOutputStream.<init>(FileOutputStream.java:101) 
+1

Nein, es wurde keine Datei erstellt. Es wird eine Ausnahme ausgelöst, wenn Sie versuchen, es zu erstellen, dh Sie haben keinen Zugriff auf den Speicherort, an dem Sie es schreiben möchten. – Kayaman

+0

Danke für die Antwort, aber ich habe gerade herausgefunden, dass es funktioniert, wenn ich den Code als Administrator ausführen. – ganninu93

+0

Sie haben keinen Schreibzugriff auf das aktuelle Arbeitsverzeichnis. Nichts mit Java zu tun, und nichts damit zu tun, dass die Datei ohne Lese- und Schreibrechte erstellt wird. Es wird überhaupt nicht erstellt. Die Ausnahme tritt stattdessen auf. – EJP

Antwort

-1

Die Macht wegen nicht Schließen des Ausgabestroms Sie können versuchen, Outputstream am Ende des Codes wie folgt zu schließen.

File f = new File("test.txt"); 
final OutputStream testStream = new FileOutputStream(f); 

//Other code goes here 

testStream.close() 
+0

Eine Ausnahme in einem Konstruktor wird nicht dadurch verursacht, dass etwas aufgrund der Ausnahme nicht mit dem Objekt erstellt wurde, das nicht erstellt wurde. – EJP

0

Sie haben möglicherweise keine Schreibberechtigung für das Verzeichnis. Zweitens immer schließen Ströme in endlich blockieren.