//콘솔창에 입력하고 컴파일할 때마다 메모장에 누적 저장됨
public class FileReadWriteEx04 {
//메인에서 처리할게 많으니 여기서 한번에 다 함
static final String FILENAME="파일(메모장) 저장할 경로\\저장할이름.txt";
// "C;\\sist0730\\javawork\\sungjuk.txt"
FileReader fr;
BufferedReader br;
FileWriter fw;
Scanner sc=new Scanner(System.in);
//메뉴 번호 선택하는 메서드
public int getMenu() {
//몇 번호를 선택하는 거기에 리턴값을 int로 하는게 좋음
int num=0;
System.out.println("1.성적 입력 2.전체출력 9.종료");
num=Integer.parseInt(sc.nextLine()); //버퍼 안 먹게 하기 위해
return num;
}
//성적입력추가..txt파일에 저장
public void scoreIn() {
System.out.println("학생명 입력");
String name=sc.nextLine();
System.out.println("점수 입력");
int score=0;
score=Integer.parseInt(sc.nextLine());
//파일저장
try {
fw=new FileWriter(FILENAME, true); //true로 해야 입력이 누적됨
fw.write(name+"\n");
fw.write(score+"\n");
System.out.println("학생성적 저장완료");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//파일 읽어서 출력
public void fileRead() {
//제목부터 출력
System.out.println("\t**기말고사 성적**");
System.out.println("번호\t이름\t점수\t등급");
System.out.println("====================");
try {
fr=new FileReader(FILENAME); //파일리더로 먼저 읽고 버퍼리더에 담기
br=new BufferedReader(fr);
int num=0;
while(true)
{
String name=br.readLine();
if(name==null)
break;
int score=Integer.parseInt(br.readLine());
String grade = null;
if(score>=90)
grade="A";
if(score>=80&&score<90)
grade="B";
if(score>=70&&score<80)
grade="C";
else if(score<70)
grade="F";
System.out.println(++num+"\t"+name+"\t"+score+"\t"+grade);
}
System.out.println("***성적출력 종료***");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
br.close();
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
FileReadWriteEx04 frw=new FileReadWriteEx04();
while(true) //반복문
{
int num=frw.getMenu();
switch(num)
{
case 1:
System.out.println("학생성적 입력");
frw.scoreIn();
break;
case 2:
System.out.println("학생성적 출력");
frw.fileRead();
break;
case 9:
System.out.println("프로그램 종료");
System.exit(0);
default:
System.out.println("번호 확인후 다시 입력");
}
}
}
}
//결과
1.성적 입력 2.전체출력 9.종료
1
학생성적 입력
학생명 입력
요다
점수 입력
100
학생성적 저장완료
1.성적 입력 2.전체출력 9.종료
1
학생성적 입력
학생명 입력
림짱
점수 입력
87
학생성적 저장완료
1.성적 입력 2.전체출력 9.종료
1
학생성적 입력
학생명 입력
루크
점수 입력
76
학생성적 저장완료
1.성적 입력 2.전체출력 9.종료
2
학생성적 출력
**기말고사 성적**
번호 이름 점수 등급
====================
1 요다 90 A
2 림짱 100 A
3 요다 90 A
4 요다 100 A
5 림짱 86 B
6 요다 90 A
7 요다 100 A
8 림짱 87 B
9 루크 76 C
***성적출력 종료***
1.성적 입력 2.전체출력 9.종료
9
프로그램 종료
'JAVA' 카테고리의 다른 글
210820_Hashset+random (0) | 2021.08.20 |
---|---|
210820_Hashset+Iterator (0) | 2021.08.20 |
210820_FileWriter+scanner (0) | 2021.08.20 |
210819_date format (0) | 2021.08.19 |
210819_filereader+bufferreader+split+tokenizer (0) | 2021.08.19 |