Warum FileWriter nicht eine neue Datei erstellen?
Betrachten Sie den folgenden code:
m_Writer = new PrintWriter(new FileWriter("LoginHistory.dat"));
m_Writer.println(Integer.toString(s_NumOfLogins));
m_Writer.println(m_LoginHistoryStr);
m_Writer.close();
Irgendwelche Ideen, warum ich nicht finden, eine Datei namens LoginHistory.dat?
Dank
Update: ich habe gerade festgestellt, dass ich eine Ausnahme nach der Zeile:
m_Writer = new PrintWriter(new FileWriter("LoginHistory.dat"));
und seine details sind:
Irgendwelche Ideen was das wirkliche problem ist?
Listening for transport dt_shmem at address: tomcat_shared_memory_id
27/05/2012 15:52:17 org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context [/SignInAndGetIp]
27/05/2012 15:52:17 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor SignInAndGetIp.xml from C:\Users\user\.netbeans\7.1.2\apache-tomcat-7.0.22.0_base\conf\Catalina\localhost
27/05/2012 15:52:17 org.apache.catalina.util.LifecycleBase start
INFO: The start() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SignInAndGetIp]] after start() had already been called. The second call will be ignored.
java.io.FileNotFoundException: LoginHistory.dat (Access denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
at java.io.FileWriter.<init>(FileWriter.java:46)
at signIn.SignInAndShowIPTableServlet.init(SignInAndShowIPTableServlet.java:60)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1228)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1147)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:836)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
- Wo suchen Sie?
- wo haben Sie sich für Ihre Daten-Datei?
- Es ist eine java web-Anwendung generiert, die auf NetBeans , damit ich alle geprüft, das Projekt-Verzeichnis und-Unterverzeichnisse
- Ich passen nicht durch einige Ausnahme, es hat die Datei erzeugt hat. Vielleicht suchen Sie am falschen Ort. Versuchen Sie geben den absoluten Pfad an.
- Versuchen Sie anrufen
m_Writer.flush()
bevor Sie Sie schließen m_Writer. - Wenn Sie einen Pfad angeben, werden die Dateien erstellt, unter der IDE-workspace-Pfad. Überprüfen Sie den Ordner.
- Es wird in dem Verzeichnis erstellt, aus dem NetBeans startet den application server. Absolute Pfade verwenden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es klar, dass Sie nicht über die Berechtigung zum erstellen der Datei, wo Sie versuchen, um es zu schaffen, daher die Meldung "Zugriff verweigert". Müssten Sie finden ein Verzeichnis, wo Sie Dateien anlegen darf. Wenn Sie nicht sicher sind, wo eine Datei erstellt werden, können Sie den vollständigen Pfad mit
- Datei.getAbsolutePath()
oder- Datei.getCanonicalPath()
.