입력받은 데이터(바이트)를 다양한 타입으로 변환하여 반환하는 클래스 (
java.util패키지)
nextInt(), nextLine(), ... 등 원하는 타입의 데이터를 읽을 수 있음✏️ 사용법
import java.util.Scanner;
public class Scanner_ {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("값을 입력하세요. : ");
int i = s.nextInt(); // 값 입력받음
}
}
데이터를 한 번에 읽어와 버퍼에 보관한 후, 버퍼에서 데이터를 읽어오는 클래스 (
java.io패키지)
✏️ 사용법
import java.io.*;
public class Buffered {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
// 정수형 데이터가 필요한 경우, 파싱 필요
int a = Integer.parseInt(str);
}
}
String.split(" ")함수를 통해, 입력받은 데이터를 공백 단위로 끊어서 배열에 저장 가능!
import java.io.*;
public class Buffered {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] arr = br.readLine().split(" ");
for(int i=0;i<arr.length;i++) {
System.out.println(arr[i]); // 공백 기준 i번째 데이터
}
}
}

StringTokenizer의
nextToken()함수를 통해, 입력받은 데이터를 공백 단위로 끊어서 호출 가능!
import java.io.*;
import java.util.StringTokenizer;
public class Buffered {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
System.out.println(st.nextToken()); // 공백 기준 첫번째 데이터
System.out.println(st.nextToken()); // 공백 기준 두번째 데이터
}
}

System.out.println();과 동일 기능 수행 ➡️ 속도가 빠르고, 많은 양의 데이터 처리에 유리!
✏️ 사용법
import java.io.*;
public class Buffered {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw
= new BufferedWriter(new OutputStreamWriter(System.out));
String[] arr = br.readLine().split(" ");
for(int i=0;i<arr.length;i++) {
bw.write(arr[i]);
bw.newLine(); // 개행
}
bw.close();
}
}

✏️ : write() 함수는 개행을 수행하지 않기 때문에, 개행문자(\n)를 사용하거나, newLine() 함수를 통해 줄바꿈 가능
close() : 스트림 닫음 flush() : 스트림 비움 ➡️ 버퍼를 사용 한 후에 반드시 닫거나 비워줘야 함!newLine() : 개행write() : 출력 ➡️ String 타입만 출력 가능 (정수 출력 시, String.ValueOf() 함수를 사용하거나, " "를 더해서 String 타입으로 변환)문자열을 추가, 삭제, 변경할 수 있는 메서드 제공
✏️ 사용법
import java.io.*;
public class Buffered {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder(); // 객체 생성
String[] arr = br.readLine().split(" ");
for(int i=0;i<arr.length;i++) {
sb.append(arr[i]).append("! ");
}
bw.write(sb.toString());
br.close();
bw.close();
}
}

append(String s) : 문자열 뒤에 문자열 s를 붙임delete(int start, int end) : 문자열의 start ~ end 인덱스까지 삭제insert(int offet, any primitive of char[]) : 특정 인덱스에 문자 삽입replace(int start, int end, String s) : start ~ end 인덱스의 문자열을 s로 치환reverse() : 순서 뒤집음setCharAt(int idx, char ch) : idx 인덱스의 문자를 ch로 치환indexOf(String s) : s 값이 위치한 인덱스 확인subString(int start, int end) : start ~ end 인덱스 사이의 값 추출