JAVA

210820_filereader+filewriter+scanner

요옫 2021. 8. 20. 11:53

 

 

//콘솔창에 입력하고 컴파일할 때마다 메모장에 누적 저장됨

 

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