☭DEVELOPER/#2 웹개발(자바기반 풀스택)

[BACKEND]JAVA_ECLIPSE 32 입출력 관련 API

조반짝 2023. 9. 5. 14:10
728x90
반응형

System.in 필드

 

 

 

 

 

 

 

 

 

 

 

 


키보드 로부터 라인 단위 문자열 얻기

package chapter14.sec03.exam01;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;

// 다음 예제는 반복해서 키보드로 입력된 문자열을 라인단위로 읽고 모니터에 출력 처리 합니다.
// 반복을 멈추려면 'q'또는 'quit'을 입력하면 됩니다.
// 키보드로 부터 라인 단위 문자열을 얻어서 처리하는 GetLineStringFromKeyboard 실행 클래스 코딩입니다.
public class GetLineStringFromKeyboard {

	public static void main(String[] args) throws IOException {
		// InputStream을
		InputStream is = System.in;
		// Reader로 변환하고
		Reader reader = new InputStreamReader(is);
		// 위에서 변환도니 데이터를 다시, BufferedReader로 연결처리 해줍니다.
		BufferedReader br = new BufferedReader(reader);
		
		while (true) {
			System.out.println("키보드로 데이터를 입력해주세요==>");
			// 라인 단위로 문자열을 읽어서 lineStr 변수에 대입 처리합니다.
			String lineStr = br.readLine();
			if(lineStr.equalsIgnoreCase("q") || lineStr.equalsIgnoreCase("quit")) {
				//while 반복문을 종료(break문)처리합니다.
				System.out.println("프로그램이 종료되었습니다.");
				break;
			}
			System.out.println("키보드에 입력된 내용 = " + lineStr);
			System.out.println();
		}
		br.close();
	}
}

Scanner로 입력된 문자열 얻기

 

product.java

package chapter14.sec03.exam02;

// 다음 예제는 Scanner를 이용해서 상품의 내용을 키보드로 입력받아서
// Product 객체를 생성하고 List 컬렉션에서 관리하는 자바 프로그램입니다.
// 우선 Product 객체를 소스 코딩해줍니다.
public class Product {

	private int pno;  // 상품 번호 pno 필드선언
	private String name;  // 상품명 name 필드 선언
	private int price;  // 상품가격 price 필드선언
	private int stock;  // 상품 재고 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;
	}
	
	
	
}

 

productStroage.java

 

package chapter14.sec03.exam02;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import javax.xml.transform.Source;

// Scanner 클래스 활용 키보드로 입력된 문자열을 활용하는 ProductStorage 소스를 코딩합니다.
public class ProductStorage {

	// List 형 자료 구저의 Porduct 타입의 list 객체 차조 변수를 생성합니다. 
	private List<Product> list = new ArrayList<Product>();
	
	// 키보드로 입력된 데이터 Scanner 클래스 활용 scan 객체 참조 변수에 대입 처리합니다.
	private Scanner scan = new Scanner(System.in);
	private int counter; // pno 제공 카운터 변수를 선언해 줍니다.
	
	void showMenu(){
		while (true) {
			System.out.println("========================");
			System.out.println("1. 등록 |  2. 목록  | 3. 종료");
			System.out.println("========================");
			
			System.out.println("메뉴 번호 선택 = ");
			String selectNo = scan.nextLine();  // 위에 메뉴 번호 읽기
			switch (selectNo) {
			case "1":
				registerProduct();  // Product 상품 등록 기능 제공
				break;
			case "2":
				showProduct();  // Product 상품 등록 기능 제공
				break;
			case "3":		// 3번을 선택하면
				return;		// 프로그램을 종료처리합니다.

			}
		}
	}

	// list에 저장된 모든 상품 Product 정보를 모니터로 출력 처리합니다.
	private void showProduct() {
		for (Product p : list) {
			System.out.println(p.getPno() + "\t" + p.getName() + "\t" + p.getPrice() + "\t" + p.getStock());
		}
		System.out.println();
	}

	// Product 상품 등록 처리 registerProduct() 메서드 선언
	private void registerProduct() {
		try {
			Product product = new Product();
			product.setPno(++counter);  //pno 값 설정 처리함
			
			System.out.println("상품명을 입력해주세요==>");
			product.setName(scan.nextLine());  // 상품명 읽고 설정처리함
			
			System.out.println("상품가격을 입력해주세요==>");
			product.setPrice(Integer.parseInt(scan.nextLine()));  // 상품명 읽고 설정처리함
			
			System.out.println("상품 재고를 입력해주세요==>");
			product.setStock(Integer.parseInt(scan.nextLine()));  // 상품재고 읽고 설정처리함
			
			list.add(product); 	// list 객체 참조 변수에 Product 객체 정보를 저장 처리합니다.
			
		} catch (Exception e) {
			System.out.println("등록 에러" + e.getMessage());
		}
	}
}

스캐너로 입력된 문자열 얻기

ProductStorageExample.java

package chapter14.sec03.exam02;

// Scanner로 입력된 문자열 데이터를 처리한는 ProductStorageExample 실행 클래스 소스 코딩입니다.
public class ProductStorageExample {

	public static void main(String[] args) {
		
		// ProductStorage 객체를 생성하고 showMenu() 메서드를 호출합니다.
		ProductStorage productStorage = new ProductStorage();
		productStorage.showMenu();
	}
}

file 클래스를 이용한 파일 및 폴더 정보출력

package chapter14.sec03.exam03;

import java.io.File;

// 다음은 C:/Temp 폴더에 images폴더와 file1.txt, file.txt2, file3.txt 파일을
// 생성하고, Temp 폴더에 있는  파일 목록을 화면으로 보여주는 (출력하는) 예제입니다.
// File 클래스 활용 파일 및 폴더 정보를 출력하는 자바프로그램 소스코딩입니다.
public class FileExample {
	
	public static void main(String[] args) {
		
		//File 객체 생성
		File dir = new File("C:/Temp/images");
		File file1 = new File("C:/Temp/file1.txt");
		File file2 = new File("C:/Temp/file2.txt");
		File file3 = new File("C:/Temp/file3.txt");
		
		// 만약에 dir 객체가 없다면
		if(dir.exists() == false) {
			// 폴더 객체를 생성합니다.
			dir.mkdir();
		}
	}

}

package chapter14.sec03.exam03;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

// 다음은 C:/Temp 폴더에 images폴더와 file1.txt, file.txt2, file3.txt 파일을
// 생성하고, Temp 폴더에 있는  파일 목록을 화면으로 보여주는 (출력하는) 예제입니다.
// File 클래스 활용 파일 및 폴더 정보를 출력하는 자바프로그램 소스코딩입니다.
public class FileExample {
	
	public static void main(String[] args) throws Exception {
		
		//File 객체 생성
		File dir = new File("C:/Temp/images");
		File file1 = new File("C:/Temp/file1.txt");
		File file2 = new File("C:/Temp/file2.txt");
		File file3 = new File("C:/Temp/file3.txt");
		
		// 만약에 dir 객체가 없다면
		if(dir.exists() == false) {
			// 폴더 객체를 생성합니다.
			dir.mkdir();
		}
		// 만약에 file1 객체가 없다면
		if (file1.exists() == false) {
			// 파일 객체를 생성합니다.
			file1.createNewFile();
		}
		
		// 만약에 file2 객체가 없다면
		if (file2.exists() == false) {
			// 파일 객체를 생성합니다.
			file2.createNewFile();
		}
		
		// 만약에 file3 객체가 없다면
		if (file3.exists() == false) {
			// 파일 객체를 생성합니다.
			file3.createNewFile();
		}
		
		// "C:/Temp 폴더의 내용 목록을 File 배열로 처리합니다.
		File temp = new File("C:/Temp");
		File[] contents = temp.listFiles();
		
		
		System.out.println("시간\t\t\t형태\t\t크기\t이름");
		System.out.println("----------------------------");
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd a HH:mm");
		
		// 파일 또는 디렉토리(폴더) 정보를 반복적으로 화면으로 출력 표시해줍니다.
		for (File file : contents) {
			System.out.print(sdf.format(new Date(file.lastModified())));
			// 만약에, 디렉토리(폴더)라면
			if (file.isDirectory()) {
				System.out.println("\t<DIR>\t\t\t " + file.getName());
			// 디렉토리(폴더)가 아니라면
			}else {
				System.out.println("\t\t\t"+ file.length()+"\t"+file.getName());
			}
			System.out.println();
		}
	}

}

728x90
반응형