2015-02-05 6 views
0

현재 저는 학생을 새로 추가하거나 현재 학생에 대한 새로운 정보를 저장할 수있는 프로그램을 가지고 있습니다. BufferedReader/Writer, FileWriter에 익숙하지 않고 방금이 랩에서 사용했습니다. 지금은 새로운 학생을 추가하면 데이터를 새 텍스트 파일에 추가하고 현재 학생 배열을 삭제합니다. 누구라도 도움이된다면 위대 할 수 있습니다.현재 텍스트 파일에 저장/현재 텍스트 파일로 업데이트하는 방법?

try 
    { 
     if((nameBox.getText().equals("")) || (ageBox.getText().equals("")) || (weightBox.getText().equals(""))|| (allBox.getText().equals(""))) 
     { 
      JOptionPane.showMessageDialog(null, "Error: Please input Data!", "Data?", JOptionPane.ERROR_MESSAGE); 
     } 
     else 
     { 
      studentArray[t] = new Student(); 
      studentArray[t].changeName(nameBox.getText()) ; 
      studentArray[t].changeAge(Integer.parseInt(ageBox.getText())); 
      studentArray[t].changeWeight(Double.parseDouble(weightBox.getText())); 
      studentArray[t].changeAllergy(Boolean.parseBoolean(allBox.getText())); 
      count++; 

      System.out.println("" + studentArray[t].getName()); 
      System.out.println("" + studentArray[t].getAge()); 
      System.out.println("" + studentArray[t].getWeight()); 
      System.out.println("" + studentArray[t].getAllergy()); 
      System.out.println(""); 
     } 

     //FileWriter files = new FileWriter(file); 
     //BufferedWriter pies = new BufferedWriter(files); 

     //String data = studentArray[t].getName() + "%" + studentArray[t].getAge()+"%" + studentArray[t].getWeight()+ "%" + studentArray[t].getAllergy(); 
     //pies.write(data); 

     //pies.close(); 

    } 

    catch(Exception z) 
    { 
     JOptionPane.showMessageDialog(null, "Wrong type!", "Type?", JOptionPane.ERROR_MESSAGE);   
    } 

답변

1

배열 대신 ArrayList을 사용해야합니다. 따라서 새로운 학생을 추가하기 만하면됩니다.

그런 다음 Array를 반복하는 대신 새 Student 객체를 만듭니다.

studentList.add(student); 

을 그리고 당신은 당신이 원하는 모든 학생을 추가 한 경우, 당신은 파일에 studentList을 추가 할 수 있습니다 :

Student student = new Student(); 
student.changeName(nameBox.getText()) ; 
student.changeAge(Integer.parseInt(ageBox.getText())); 
student.changeWeight(Double.parseDouble(weightBox.getText())); 
student.changeAllergy(Boolean.parseBoolean(allBox.getText())); 

그리고 지금 당신은 당신의 studentList에 추가합니다. 그래서 여기에 당신이 당신의 studentList 반복하고 파일에 추가

FileWriter writer = new FileWriter(file, true); 
    for(Student st: studentList) { 
    String data = st.getName() + "%" + st.getAge()+"%" + st.getWeight()+ "%" + st.getAllergy(); 
    writer.write(data+"\n"); 
} 
writer.close(); 

: 그것은 그런 식으로는 입력을 추가 때문에 FileWriter에 연산자로 true를 추가하는 것이 중요합니다. \n이 보이십니까? 그것은 줄 바꿈이고 한 학생은 한 줄을 가지고 있음을 의미합니다.

+0

와우, 고마워! 나는 지금 당장 그것을 시도 할 것이다. – tshes

+0

필자는 실제로 테스트 할 수 없으면 그것을 작성했습니다 (텍스트 편집기에만 해당). 불명확하거나 잘못 된 것이 있으면 언제든지 물어보십시오. – Christian