2010-03-04 5 views
2

JFileChooser로 모든 종류의 파일을 여는 Java 프로그램을 작성했습니다. 그런 다음 JFileChooser 저장 대화 상자를 사용하여 다른 디렉토리에 저장하려고하지만 빈 파일 만 저장합니다. 부품을 저장하기 위해 무엇을 할 수 있습니까?JFileChooser 저장 대화 상자로 파일 저장

감사합니다.

답변

8

JFileChooser는 File 객체를 반환하기 때문에 FileWriter를 열고 실제로 내용을 써야합니다.

예.

if (returnVal == JFileChooser.APPROVE_OPTION) { 
    File file = fc.getSelectedFile(); 
    FileWriter fw = new FileWriter(file); 
    fw.write(contents); 
    // etc... 
} 

편집 :

단순히 소스 파일과 대상 파일이 두 사이에 내용을 복사 할 가정하면, 나는 무거운 할 아파치의 Commons IO에서 FileUtils 같은 것을 사용하는 것이 좋습니다 것 .

예.

FileUtils.copy(source, dest); 

완료!

+0

당신이 날은 코드에 표시하시기 바랍니다 수 있습니까? – samuel

+0

감사 합니다만, 내용은 무엇입니까? – samuel

+1

내용은 당신이 파일 – Kris

2

그냥 Kris' answer에 추가 된 것 같습니다. 아직 파일의 내용을 읽지 않았습니다. 기본적으로 당신은 자바로 파일을 복사하려면 다음과 사용 JFileChooser를 할 필요가 :

  1. 가 FileChooser와 소스 파일을 선택합니다. File 객체를 반환합니다. 파일 이름에 대한 래퍼 클래스를 반환합니다.
  2. 파일과 함께 FileReader를 사용하여 내용을 가져옵니다. String 또는 바이트 배열 또는 다른 것으로 저장하십시오.
  3. 파일을 FileChooser로 선택하십시오. 다시 File 객체를 반환합니다.
  4. 대상 파일과 함께 FileWriter를 사용하여 위에서 문자열 또는 바이트 배열을 해당 파일에 저장합니다.

파일 열기 대화 상자는 파일 내용을 메모리로 읽지 않습니다. 파일을 나타내는 개체 만 반환합니다.

0

뭔가 같은 ..

File file = fc.getSelectedFile(); 
String textToSave = mainTextPane.getText(); 
BufferedWriter writer = null; 

try 
{ 
writer = new BufferedWriter(new FileWriter(file)); 
writer.write(textToSave); 
JOptionPane.showMessageDialog(this, "Message saved. (" + file.getName()+")", 
"ImPhil HTML Editer - Page Saved", 
JOptionPane.INFORMATION_MESSAGE); 
} 
catch (IOException e) 
{ } 
+0

"완전한보기"에 연결은 404이다. –

+1

안녕 제임스, 이것을 기각을위한 감사합니다. 당신. – Phil

+1

그리고 지금 그것은 404입니다. –

관련 문제