2014-12-08 3 views
0

내 경우는 다음과 같습니다.JTable의 정보를 파일에 저장하는 방법은 무엇입니까?

지금까지 내 그룹과 필자는 외부 파일에서 정보를 읽고 JTable에 배치했습니다. 하지만 업데이트 버튼이 필요합니다. 따라서 JTable의 모든 정보를 내부에서 편집 한 다음 JTable의 모든 정보를 가져와 동일한 파일의 현재 정보로 바꾸어야합니다. 그래서 우리는 오래된 파일을 덮어 써야한다고 생각합니다.

지금까지 우리는 이것을 가지고 : (인터넷 용 난 ... 코드의 일부이지만 회색 영역 내부에 그것을 얻을 수 없습니다 : P) 우리가 가진 우리의 SaveMember.java 내부

for(int i = 0; i < model.getRowCount(); i++) { 
    p += model.getValueAt(i, 0) + " " 
       + model.getValueAt(i, 1) + " " 
       + (Integer) model.getValueAt(i, 2) + " " 
       + model.getValueAt(i, 3) + " " 
       + (Integer)model.getValueAt(i, 4) + " " 
       + model.getValueAt(i, 5) + " " 
       + model.getValueAt(i, 6) + " " 
       + model.getValueAt(i, 7) + " " 
       + (Integer)model.getValueAt(i, 8) + "\n"; 
} 

// Update File 
SaveMember sm = new SaveMember(); 
sm.update(p); 

:

지금 우리가 가서 데이터를 변경하고 버튼 업데이트를 누르면 의한 그래서
public void update(String x) throws Exception { 
    File f = new File("Members/Members.txt"); 
    PrintStream output = new PrintStream(f); 
    output.print(x); 

, 전혀 아무것도하지 않고, 읽기에 대한 새로운 .. 감사와 이전 데이터를 대체하지 않습니다! :)

+0

코드 서식을 사용하려면 텍스트를 선택하고 메시지 게시 편집 양식 상단의 '{}'버튼을 클릭하십시오. –

답변

0

잘 모르겠습니다. 코드가 실행되었다는 것을 두 번 확인한 경우 (어쩌면 단추에 ActionListener를 첨부하는 것을 잊어 버린 것일 수도 있습니다. 우리 모두가 때때로 그렇게합니다 ...) 출력 스트림을 플러시하고 나중에 스트림을 닫으십시오.

0

먼저 for 루프의 코드가 전혀 실행되지 않는지 확인하십시오. for 루프 다음에 중단 점을 설정하고 문자열 p을 검사합니다. 디버깅에 익숙하지 않은 경우 문자열을 System.out.println(p)으로 콘솔에 인쇄하십시오.

코드가 실행되지 않는 경우 : 코드가있는 메소드가 호출되지 않는 이유를 확인하십시오. 아마 당신은 당신의 업데이트 버튼에 액션 리스너를 부착하는 것을 잊었거나 액션 리스너는 어떤 상황에서는 조기 리턴을 가지고있을 것입니다.

코드가 실행되는 경우 : 업데이트 메서드로 예외가 발생하면 어떻게해야합니까? 로거에 기록하거나 콘솔에 다시 인쇄하십시오 (다시 System.out.println(exc) 통해). FileNotFoundException이 있으면 파일 경로가 올바르지 않습니다.

관련 문제