지금까지 성적관리 프로그램을 만들때 데이터를 직접 콘솔창에 입력하여 평균이나 학점 등의 결과를 냈다면,
txt파일에 저장된 값을 불러와서 자동으로 평균을 계산해주는 프로그램을 만들어볼 예정.
stream은 중간 매개체 역할이기 때문에 값을 읽을 수 있는 scanner 객체는 여전히 필요하다.
hasNextLine() 메소드는 한 줄씩 데이터가 남아있다면 true 가 반환된다.
import java.io.FileInputStream;
import java.util.Scanner;
public class homework1_day10 {
public static void main(String[] args) {
Scanner sc;
try {
// scanner에 data.txt에 있는 값을 불러옴
sc = new Scanner(new FileInputStream("data.txt"));
// sc에 값이 남아있다면 계속 무한 반복
while (sc.hasNextLine()) {
// 한 줄씩 값을 가져와서 str에 저장
String str = sc.nextLine();
// 저장된 값을 , 기준으로 자르고 배열에 저장한다.
String[] arr=str.split(",");
System.out.println("이름: "+ arr[0]);
System.out.println("국어점수: "+arr[1]);
System.out.println("수학점수: "+arr[2]);
System.out.println("영어점수: "+arr[3]);
// string 으로 데이터를 가져왔기 때문에 숫자형태로 변환함
int sum=Integer.parseInt(arr[1])+Integer.parseInt(arr[2])+Integer.parseInt(arr[3]);
System.out.println("총점: "+ sum);
int avg=sum/3;
System.out.println("평균: "+ avg);
String grade;
switch (avg/10){
case 10: case 9:
grade="A";
System.out.println("학점: "+grade);
case 8:
grade = "B";
System.out.println("학점 : "+grade);
break;
case 7:
grade = "C";
System.out.println("학점 : "+grade);
break;
case 6:
grade = "D";
System.out.println("학점 : "+grade);
break;
default:
grade = "F";
System.out.println("학점 : "+grade);
break;
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
'개발자공부 (2021.11~현재) > Java' 카테고리의 다른 글
Jcodec과 thumbnailator를 이용한 썸네일 뽑기 (0) | 2022.11.01 |
---|---|
Resource 를 사용한 사진파일 불러오기 (0) | 2022.10.28 |
스트림(stream)을 이용한 클래스 다루기 (0) | 2021.12.10 |
ArrayList를 이용한 학생 관리 프로그램 (0) | 2021.12.10 |
Java로 만드는 학생 성적 관리 프로그램 (0) | 2021.11.12 |