판봉 개발 일기

Scanner 클래스는 무엇인가 본문

자바 복습

Scanner 클래스는 무엇인가

판봉 2021. 7. 17. 14:51
728x90

Scanner 클래스

QR코드를 스캔하는 이미지

Scanner 클래스입출력 스트림도 아니며, 보조 스트림도 아닙니다.

Scanner는 문자 파일이나 바이트 기반 입력 스트림에서 라인 단위 문자열을 쉽게 읽도록 하기위하여 java.util 패키지에서 제공하는 클래스입니다.

 

전의 글에는 여러가지 보조 스트림을 연결하는 작업이 필요했다면 Scanner는 보조 스트림 없이 라인 단위 문자열을 쉽게 읽을수 있습니다.

즉, nextLine() 메소드를 제공합니다.


다음은 위와 관련된 코드입니다.

public class Product {
	private int pno;
	private String name;
	private int price;
	private int stock;
	
	public int getPno() { return pno;}
	public void setPno(int pno) { this.pno = pno;}
	public String getName() {return name;}
	public void setName(String name) { this.name = name;}
	public int getPrice() {return price;}
	public void setPrice(int price) {this.price = price;}
	public int getStock() {return stock;}
	public void setStock(int stock) {this.stock = stock;}
}
import java.util.*;

public class ProductStorage {
	private List<Product> list = new ArrayList(); // list 컬렉련 생성
	private Scanner scanner = new Scanner(System.in); // Scanner 생성
	private int counter; //pno 제공 카운터
	
	public void showMenu() {
		while(true) {
			System.out.println("------------------------------------");
			System.out.println("1.등록  ||  2.목록  |  3.종료");
			System.out.println("------------------------------------");
			
			System.out.print("선택: ");
			String selectNo = scanner.nextLine(); //선택한 번호 읽기
			switch(selectNo) {
			case "1" : registerProduct(); break; // 프로덕트 등록
			case "2" : showProducts(); break; // 등록된 모든 Product 정보 보기
			case "3" : return; // 프로그램 종료
			}
		}
	}
	
	public void registerProduct() {
		try {
			Product product = new Product();
			product.setPno(++counter); // pno 세팅
			
			System.out.print("상품명 : ");
			product.setName(scanner.nextLine()); // 이름을 읽고 세팅
			
			System.out.print("가격 : ");
			product.setPrice(Integer.parseInt(scanner.nextLine())); // 가격을 읽고 세팅
			
			System.out.print("재고 : ");
			product.setStock(Integer.parseInt(scanner.nextLine())); // 재고를 읽고 세팅
			
			list.add(product); // list에 product 저장
		} catch(Exception e) {
			System.out.println("등록 에러 : " + e.getMessage());
		}
	}
	
	public void showProducts() {
		for(Product p : list) {
			System.out.println(p.getPno() + "\t" + p.getName() + "\t" +p.getPrice() + "\t" + p.getStock());// 리스트에 저장된 모든 product정보를 출력
		}
	}

}
public class ProductStorageExample {
	public static void main(String[] args) {
		ProductStorage productStoreage = new ProductStorage();
		productStoreage.showMenu(); // productStorage 객체를 생성하고 showMenu()메소드 호출
	}
}

한번 해보시면 재밌을 겁니다. 앞에서 배운 swtich문과 while반복문 그리고 for-echa문 set과 get 메소드 활용 그리고 ArrayList 생성 Scanner등등 많은게 들어가 있습니다.

'자바 복습' 카테고리의 다른 글

File 클래스란 무엇인가  (0) 2021.07.17
입출력 관련 API  (0) 2021.07.17
객체 입출력 보조 스트림  (0) 2021.07.16
프린터 보조 스트림  (0) 2021.07.16
기본 타입 입출력 보조 스트림  (0) 2021.07.15