본문 바로가기

Java

[Java] 파일 클래스 예제1 (파일 읽어와서 출력하기)

728x90

과제.
아래에 data.txt를 읽어와서 다음과 같이 출력하는 프로그램을 작성해보자.

data.txt
김사과,90,80,100
오렌지,100,90,70
반하나,60,80,90
이메론,70,80,85

결과
********* 성적 프로그램 **********
이름 : 김사과
국어점수 : 90
영어점수 : 80
수학점수 : 100
총점 : XXX
평균 : XXX
학점 : XXX


Student클래스

public class Student {
    private String name;
    private int kor;
    private int eng;
    private int math;
    private int tot;
    private double avg;
    private String grade;

    public Student(String name, int kor, int eng, int math, int tot, double avg, String grade) {
        this.name = name;
        this.kor = kor;
        this.eng = eng;
        this.math = math;
        this.tot = tot;
        this.avg = avg;
        this.grade = grade;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getKor() {
        return kor;
    }

    public void setKor(int kor) {
        this.kor = kor;
    }

    public int getEng() {
        return eng;
    }

    public void setEng(int eng) {
        this.eng = eng;
    }

    public int getMath() {
        return math;
    }

    public void setMath(int math) {
        this.math = math;
    }

    public int getTot() {
        return tot;
    }

    public void setTot(int tot) {
        this.tot = tot;
    }

    public double getAvg() {
        return avg;
    }

    public void setAvg(double avg) {
        this.avg = avg;
    }

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }

    @Override
    public String toString() {
        return "이름 : " + name + "\n" +
                "국어점수 : " + kor + "\n" +
                "영어점수 : " + eng + "\n" +
                "수학점수 : " + math + "\n" +
                "총점 : " + tot + "\n" +
                "평균 : " + avg + "\n" +
                "학점 : " + grade;

    }
}

 

실행

import java.io.FileInputStream;
import java.util.Scanner;

public class Homework {
    public static void main(String[] args) {
        Scanner sc; // 파일을 읽을 스캐너 객체 생성
        String file = "data.txt"; // 파일 경로를 저장할 file 객체 생성
        try {
            sc = new Scanner(new FileInputStream(file)); // file을 읽어와서 sc객체에 저장
            while(sc.hasNextLine()) { // 다음 줄에 데이터가 있을 때 까지 반복
                String[] str = sc.nextLine().split(","); // "," 를 기준으로 나누어서 배열 str에 저장
                String name = str[0];
                int kor = Integer.parseInt(str[1]);
                int eng = Integer.parseInt(str[2]);
                int math = Integer.parseInt(str[3]);
                int tot =  kor + eng + math;
                double avg = tot/3;
                String grade = "";
                if (avg >= 90 && avg <= 100) {
                    grade = "A";
                } else if (avg >= 80 && avg < 90) {
                    grade = "B";
                } else if (avg >= 70 && avg < 80) {
                    grade = "C";
                } else if (avg >= 60 && avg < 70) {
                    grade = "D";
                } else {
                    grade = "F";
                }
                Student student = new Student(name, kor, eng, math, tot, avg, grade);
                System.out.println(student); // Student클래스의 toString() 출력
                System.out.println();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

실행결과

 

 

728x90

'Java' 카테고리의 다른 글

[Java] 파일 클래스 예제2 (영어 단어장)  (0) 2022.04.18
[Java] 파일 클래스(StringBuilder)  (0) 2022.04.18
[Java] 파일 클래스  (0) 2022.04.18
[Java] 예외 처리(Exception)  (0) 2022.04.18
[Java] 예제3 (학생 관리 프로그램)  (0) 2022.04.17