2012-05-26 2 views
3

다음 코드를 고려하십시오FileWriter가 새 파일을 생성하지 않는 이유는 무엇입니까?

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) 
+0

어디에서 찾으십니까? – Jivings

+0

데이터 파일을 어디에서 찾았습니까? – UmNyobe

+0

NetBeans에서 생성 된 java 웹 응용 프로그램이므로 모든 프로젝트 디렉토리와 하위 디렉토리 – JavaSa

답변

2

만들려는 파일을 만들 권한이 없으므로 "액세스가 거부되었습니다"라는 메시지가 표시됩니다. 파일을 만들 수있는 디렉토리를 찾아야합니다. 파일을 만들 위치를 모를 경우 File.getAbsolutePath() 또는 File.getCanonicalPath()으로 전체 경로를 볼 수 있습니다.

+0

귀하의 의견을 보내 주셔서 감사합니다,하지만 난 정말 내 자신의 하드 디스크에 파일을 만들 수없는 이유를 모르겠다, 그것은 조금 이상합니다. – JavaSa

+0

나는 또한 당신이 말한 것을 시도했지만 불행히도 나는 PrintWriter와 FileWriter (File 클래스에서 확장되지 않은 이들 클래스)에서 언급 한 어떤 메소드도 가지고 있지 않다. – JavaSa

+1

"보안"이라고 불린다. 최신 OS는 일반 사용자의 파일 쓰기 권한을 제한합니다. 아니요, FileWriter는 File이 아니므로 [새 파일 작성] (http://docs.oracle.com/javase/6/docs/api/java/io/File.html#File%28java)이 필요합니다. lang.String % 29) 그 메소드를 호출하십시오. FileWriter에는 [File 객체를 허용하는 생성자]도 있습니다 (http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html#FileWriter%28java.io.File%29). 당신이 원한다면 당신도 그것을 사용할 수 있습니다. 그렇지 않으면 파일을 만들 수있는 위치를 찾아 경로를 지정하십시오. –