[Java] Scanner와 FileIO

JOY·2023년 3월 3일
0

[Java]

목록 보기
4/15
post-thumbnail

Scanner와 FileIO

1) 모니터 출력 = 화면 출력 → System.out → java.io.OutputStream
2) 키보드 입력 = 입력 → System.in → java.io.InputStream(byte 단위)

java.io 사용 시 예외처리 필수(try~catch~finally)

java.util.Scanner

  • 파일, 입력스트림등에서 데이터를 읽어 구분자로 토큰화하고
    다앙한 타입으로 형변환 하여 리턴해주는 클래스
  • 입력 스트림을 다루는 방법을 몰라도 손쉽게 입력처리 가능
  • 데이터 형변환으로 인한 편리함
  • 대량의 데이터 처리 시 수행시간 비효율적인 단점
  • Scanner의 종류 (Overloading)
    • Scanner(File source)
    • Scanner(InputStream source)
    • Scanner(String source)
    • Scanner(File source)

입력 받기

1) 숫자를 입력받을 때

 int no = xx.nextInt(); //개행문자("\n") 무시

2) 문자를 입력받을 때

String data = xx.next();  //공백없이 문자열 : 개행문자("\n") 무시
String data = xx.nextLine(); //공백이 있는 문자열 경우

문자열 → 숫자 변환

  • int no = Integer.parseInt(String s)

숫자 → 문자열 변환

  • String str = Integer.toString(int no);

참고 코드

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

public class keyboardInputIOExam {

	public static void main(String[] args) throws IOException {
		InputStream is = System.in;
		System.out.println("입력 = ");
			
		/* 
         * int i = is.read(); //1byte 읽기 
		 * System.out.println(i);
		 */
		
		//InputStream을 Reader 변환 (byte 단위 -> 문자 단위로 변환)
		InputStreamReader isr = new InputStreamReader(is);
		//int i = isr.read(); //1문자 읽기 
		//System.out.println(i + " = " + (char)i);
	
		//한줄씩 읽기 위한 입출력 속도향상을 높이기 위한 Buffered 필요
		BufferedReader br = new BufferedReader(isr);
		String data = br.readLine();
		System.out.println(data);
	}
}
profile
Just Do IT ------- 🏃‍♀️

0개의 댓글