2016-11-26 2 views
-1

Java에서 약간의 문제가 있습니다. 나는 새로운 파일 을 생성하고이 파일은 mainPlayerVariables라는 클래스에 있고 그 변수는 public static File savePlayerCoins = new File("c:\\Games\\Coin_Clicker\\saves\\pc.txt");이다 그러나 한 내 JFrame의 내가 JButton의 그것에이 온 클릭 기능 추가되는 mainGame 스크립트 : 이제새 파일을 만드는 중 Java 오류가 발생했습니다.

mainPlayerVariables.playerCoins++; 
lblCoins.setText("x" + mainPlayerVariables.playerCoins); 

try { 
       BufferedWriter bwSaveCoins = new BufferedWriter(new FileWriter(mainPlayerVariables.savePlayerCoins)); 
       bwSaveCoins.write(mainPlayerVariables.playerCoins); 
       bwSaveCoins.close(); 

       mainPlayerVariables.savePlayerCoins.getParentFile().mkdirs(); 
       mainPlayerVariables.savePlayerCoins.createNewFile(); 
      } catch (IOException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 

를 I Java가 bufferedWriter에 오류를 표시하고 새 파일 코드를 작성하는 이유를 모르십시오.

알고 계신가요? 고맙습니다. 내가 파일 옵션에서 실수를 한 경우

java.io.FileNotFoundException: c:\Games\Coin_Clicker\saves\pc.txt (The system cannot find the path specified) 
at java.io.FileOutputStream.open0(Native Method) 
at java.io.FileOutputStream.open(Unknown Source) 
at java.io.FileOutputStream.<init>(Unknown Source) 
at java.io.FileOutputStream.<init>(Unknown Source) 
at java.io.FileWriter.<init>(Unknown Source) 
at mainGame.mainGamePlay$2.mouseReleased(mainGamePlay.java:82) 
at java.awt.Component.processMouseEvent(Unknown Source) 
at javax.swing.JComponent.processMouseEvent(Unknown Source) 
at java.awt.Component.processEvent(Unknown Source) 
at java.awt.Container.processEvent(Unknown Source) 
at java.awt.Component.dispatchEventImpl(Unknown Source) 
at java.awt.Container.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
at java.awt.Container.dispatchEventImpl(Unknown Source) 
at java.awt.Window.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
at java.awt.EventQueue.access$500(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) 
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue$4.run(Unknown Source) 
at java.awt.EventQueue$4.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue.dispatchEvent(Unknown Source) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.run(Unknown Source) 

은, 내가 그것을 해결 도와주세요 : 다음은 오류입니다. :)

+0

그것은 분명 FileNotFoundException이 잘 말한다 :

이 보정입니까? "시스템에서 지정된 경로를 찾을 수 없습니다" – developer

+0

네, 그렇습니다. 나는 코드 getParentFile()을 가지고있다. mkdirs(); –

+0

코드가 의미가 없습니다. 당신은'mkdirs()'* first *', * then''새로운 FileWriter()', 쓰기 및 닫기,'createNewFile()'* 호출하지 말아야합니다. * – EJP

답변

1

음, 내가 왜 대답했는지 알아 냈습니다. :) 고맙습니다.

mainPlayerVariables.savePlayerCoins.getParentFile().mkdirs(); 코드를 다른 위치에 두었습니다.

mainPlayerVariables.savePlayerCoins.getParentFile().mkdirs(); 
try { 
      BufferedWriter bwSaveCoins = new BufferedWriter(new FileWriter(mainPlayerVariables.savePlayerCoins)); 
      bwSaveCoins.write(mainPlayerVariables.playerCoins); 
      bwSaveCoins.close(); 

      mainPlayerVariables.savePlayerCoins.createNewFile(); 
     } catch (IOException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 
+0

파일이 이미 그 지점에 있기 때문에'createNewFile()'호출은 아무 것도하지 않습니다. – qxz

+0

고마워. 고마워. :) –

+0

그럼 제거해야합니다. – EJP

관련 문제