Java -FileWriter -2(2)
case 7 : 성적 삭제에 대한 프로그램이다. 다른방법도 작성한다.
case "7":
System.out.print("학번>"); sno=scan.nextLine();
svo = sdao.read(sno);
if(svo.getName()==null) {
System.out.println("학생이 없습니다.");
}else {
System.out.println("성명>" + svo.getName());
ArrayList<Score> scores =cdao.list(sno);
if(scores.size()==0) {
System.out.println("등록된 성적이 없습니다.");
}else {
for(Score c:score s) {
System.out.printf("%s\t%d\t%d\t%d\t%d\t%.2f\t%s\n",
c.getDate(),c.getKor(),c.getEng(),
c.getMath(),c.getTot(),c.getAvg(),c.getGrade());
}
}
}
System.out.print("\n삭제할날짜>"); String date = scan.nextLine();
System.out.print(date + " 데이터를 삭제하실래요? (Y/N) >");
String sel =scan.nextLine();
if(sel.equals("y") || sel.equals("Y") ) {
boolean find = cdao.delete(sno, date);
if (find ==true) {
System.out.println("삭제완료!");
}else {
System.out.println("해당 날짜에 시험이 없습니다.");
}
}
앞부분은 똑같고 boolean 을 사용한다는 점이 다르다.
ScoreDAO class
public boolean delete(String no, String date) {
boolean find = false;
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = "";
String newFile ="";
while((line=reader.readLine()) != null) { //라인단위로 읽어온 데이터가 null 이 아닌동안에
String[] item = line.split(",");
if(no.equals(item[0]) && date.equals(item[1])) {
find =true;
}else {
Score vo = new Score();
vo.setNo(item[0]);
vo.setDate(item[1]);
vo.setKor(Integer.parseInt(item[2]));
vo.setEng(Integer.parseInt(item[3]));
vo.setMath(Integer.parseInt(item[4]));
vo.setTot(); vo.setAvg(); vo.setGrade();
newFile=newFile + vo.toString();
}
}
//삭제할 데이터를 제외하고 저장
FileWriter writer = new FileWriter(file, false);
writer.write(newFile);
writer.flush();
writer.close();
}catch(Exception e) {
System.out.println("오류:" + e.toString());
}
return find;
}
}
불린으로 학번과 날짜를 입력받아서 find 값을 return 해준다.
boolean find = cdao.delete(sno, date); if (find ==true) { System.out.println(“삭제완료!”); }else { System.out.println(“해당 날짜에 시험이 없습니다.”); }
scoredao 에서 스캔으로 입력한 값 sno, date 를 입력받아서 find == true 이면 삭제가되고 아니면 해당날짜가 시험이 없다고 출력된다 .!
내가짠 소스는 read 메서드를 추가했어야했기때문에 중복이되고 복잡한거에 비해 불린을써서 간단하게 출력할수있었다. 항상 더 간단하게 만들수있도록 생각해보자.
댓글남기기