ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 210820_filereader+filewriter+scanner
    JAVA 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

    댓글

Designed by Tistory.