BufferedReader /Scanner

7896 단어 22/4/1622/4/16

버퍼는 데이터를 건마다 하드디스크로 출력하지 않고 메모리 버퍼에 데이터가 꽉 차면 한번에 하드디스크 보냄으로 출력 횟수를 줄여준다

바이트 기반 스트림에는 BufferedInputStream, BufferedOutputStream

문자 기반 스트림에는 BufferedReader, BufferedWriter

BufferedReader 을 쓰는 방식이다.

readLine() 을 통해 입력받아 연산하는 방법 두 가지

readLine() 은 한 행을 전부 읽기 때문에 공백 단위로 입력해 준 문자열을 공백단위로 분리해준다

문자열 분리 방법 두 가지

StringTokenizer 클래스를 이용하여 분리

split() 을 이용하는 방법

그리고 반드시 자료형 타입을 잘 봐야함

st.nextToken() 은 문자열을 반환하니 Integer.parseInt()로 int 형으로 변환시켜준다.

StringTokenizer st = new StringTokenizer(str," "); 입력받을 변수, "구분자"

StringTokenizer 객체가 생성되고 구분자를 기준으로 부분 문자열을 분리해 낼수 있다.

nextToken() 토큰을 하나씩 꺼내옴

readLine(); 쓸때 throws Exception 해줘야함


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

public class TestGo3 {

	public static void main(String[] args)throws Exception {
		
		InputStream is = System.in;
		InputStreamReader reader = new InputStreamReader(is);
		BufferedReader br = new BufferedReader(reader);
		//BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		// 한번에 가능
		
		//string 변수 생성 안하고 동시에 구분자로 분리가능
//		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		String str = br.readLine();
		StringTokenizer st = new StringTokenizer(str," ");
		int n1 = Integer.parseInt(st.nextToken());
		int n2 = Integer.parseInt(st.nextToken());
		
		if(n1 > n2) {
			System.out.println(">");
		}
		if(n1 < n2) {
			System.out.println("<");
		}
		if(n1 == n2) {
			System.out.println("==");
		}
		
	
/*    
굳이 String 변수 생성 안하고 입력과 동시에 구분자로 분리해줘도 된다.
 
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		int A = Integer.parseInt(st.nextToken());
		int B = Integer.parseInt(st.nextToken());
		
		System.out.println((A>B) ? ">" : ((A<B) ? "<" : "==" )); 
        
*/
	}
}

좋은 웹페이지 즐겨찾기