2016-06-25 1 views
1

안녕하세요 저는 GUI에서 값을 가져 와서 txt 파일을 출력해야하는 클래스에서 다른 프로그램을 제공하는 programm를 구현하려고했습니다. GUI와 다른 클래스는 잘 작동하지만 GUI에서 다른 클래스로 값을 가져 오지 못하거나 클래스 멤버가 시작되지 않는 것 같습니다. 지금까지이 있습니다.txt 파일에 문자열 쓰기가 작동하지 않습니다.

import java.io.*; 
// 
//some code 
// 
public static void SaveTextToFile(String Name,String Spec, String Text){ 

    try{ 
     File file = new File("user.dir"+ File.separator + Name + File.separator + Spec + "Text.txt"); 
     file.getParentFile().mkdir(); 
     FileWriter writer = new FileWriter(file); 
     writer.write(Text); 
     writer.flush(); 
     writer.close(); 
    } catch 
     (IOException e) {} 
    } 

...

그러나 어떻게 든조차하지 않는 파일이나 디렉토리가 작성됩니다. 아이디어가 있으십니까?

+0

확인을 작동하는 무슨'file.getParentFile()에서 mkdir를();'는'TRUE '또는'FALSE '를 반환 :

지금 내가있다.. 'false'를'file.getParentFile(). mkdirs(); '로 바꾸어보십시오. –

답변

1

전체 폴더 구조를 만들려면 mkdirs이 아닌 mkdir을 사용해야합니다.

사용 file.getParentFile().mkdirs();

에서 mkdir()는

이 추상 패스 명이 나타내는 디렉토리를 생성합니다.

mkdirs()는

필요한하지만 존재하지 않는 부모 디렉토리를 포함하여이 추상 패스 명이 디렉토리를 작성합니다. 이 작업이 실패하면 필요한 상위 디렉터리를 만드는 데 성공했을 수 있습니다.

this answer을 읽으십시오. 당신은 내가 Fileutils의 패키지 IO appache 공유지와 함께 문제를 해결 사용자의 폴더 구조

0

대신 "으로 user.dir"의

File file = new File(
     System.getProperty("user.home") + File.separator + Name + File.separator + Spec + "Text.txt"); 

을 시도합니다.

public static void SaveTextToFile(String Name,String Spec, String Text){ 

    try{ 
     File file = new File(Name + File.separator + Spec + "Text.txt"); 
     org.apache.commons.io.FileUtils.forceMkdirParent(file); 
     org.apache.commons.io.FileUtils.writeStringToFile(file, Text, "utf8"); 
    } catch 
     (IOException e) {} 
    } 

을 그리고 그것은 멋지고

+0

힌트를 보내 주셔서 감사합니다. –

1

에서 파일을 만들려면

관련 문제