Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么FileWriter没有';不创建新文件吗?_Java_Tomcat_Tomcat7_Filewriter_Printwriter - Fatal编程技术网

Java 为什么FileWriter没有';不创建新文件吗?

Java 为什么FileWriter没有';不创建新文件吗?,java,tomcat,tomcat7,filewriter,printwriter,Java,Tomcat,Tomcat7,Filewriter,Printwriter,考虑以下代码: m_Writer = new PrintWriter(new FileWriter("LoginHistory.dat")); m_Writer.println(Integer.toString(s_NumOfLogins)); m_Writer.println(m_LoginHistoryStr); m_Writer.close(); 知道我为什么找不到名为LoginHistory.dat的文件吗? 谢谢 更新:我刚刚发现在第行之后出现异常: m_Write

考虑以下代码:

 m_Writer = new PrintWriter(new FileWriter("LoginHistory.dat")); 
 m_Writer.println(Integer.toString(s_NumOfLogins)); 
 m_Writer.println(m_LoginHistoryStr);
 m_Writer.close();   
知道我为什么找不到名为LoginHistory.dat的文件吗?
谢谢

更新:我刚刚发现在第行之后出现异常:

m_Writer = new PrintWriter(new FileWriter("LoginHistory.dat"));
其详细信息如下:
你知道真正的问题是什么吗

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)
在地址:tomcat\u共享\u内存\u id侦听传输dt\u shmem
27/05/2012 15:52:17 org.apache.catalina.startup.HostConfig checkResources
信息:取消部署上下文[/SignnandGetIP]
27/05/2012 15:52:17 org.apache.catalina.startup.HostConfig部署描述符
信息:从C:\Users\user\.netbeans\7.1.2\apache-tomcat-7.0.22.0\u base\conf\Catalina\localhost部署配置描述符signnandGetIP.xml
2012年5月27日15:52:17 org.apache.catalina.util.LifecycleBase启动
信息:在调用start()之后,对组件[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SignnandGetIP]]调用了start()方法。第二个呼叫将被忽略。
java.io.FileNotFoundException:LoginHistory.dat(‏‏访问被拒绝)
在java.io.FileOutputStream.open(本机方法)
位于java.io.FileOutputStream。(FileOutputStream.java:179)
位于java.io.FileOutputStream。(FileOutputStream.java:70)
位于java.io.FileWriter(FileWriter.java:46)
位于signIn.signandshowiptableservlet.init(signandshowiptableservlet.java:60)
位于javax.servlet.GenericServlet.init(GenericServlet.java:160)
位于org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1228)
位于org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1147)
位于org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:836)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
位于org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
位于org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
运行(Thread.java:662)

很明显,您没有权限在尝试创建文件的位置创建该文件,因此出现了“拒绝访问”消息。您需要找到一个允许您创建文件的目录。如果您不确定文件将在何处创建,您可以通过或查看其完整路径。

您在何处查找数据文件?它是在NetBeans上生成的java web应用程序,因此我检查了所有项目目录和子目录。我没有通过一些异常检查,它已生成该文件。你可能看错地方了。尝试给出绝对路径。在关闭m_Writer之前,尝试调用
m_Writer.flush()
。除非指定路径,否则将在IDE的工作区路径下创建文件。检查那个文件夹。谢谢你的评论,但是,我真的不知道为什么我不能在我自己的硬盘上创建一个文件,这有点奇怪。我也试过你所说的,但不幸的是,我在PrintWriter和FileWriter中都没有你之前提到的任何方法(这些类不是从file类扩展而来的),这叫做“安全性”。现代OSs限制普通用户写入文件的权限。不,FileWriter不是一个文件,因此您需要在该文件上创建并调用该方法。FileWriter也有,所以如果您愿意,也可以使用它。否则,只需找出允许您创建文件的位置,并将路径指向该位置即可。