JAVA의 입 출력

  • 입력과 출력으로 JAVA는 성능이 좌우되는 코테가 존재
  • 빠른 입출력 방법과, 일반적인 입출력 방법을 알아보자

입력

Scanner

  • 일반적인 간단한 입력으로 사용한다.
  • 예외처리 없어도 되며, nextline을 혼용하면 잘못 입력될 여지가 있다.
  • String과 int로 받는게 가능하다.

  • 사용법
import java.util.Scanner; //import

Scanner sc = new Scanner(System.in); //객체 생성

//공백, \t, \n을 기준으로 가져온다.
String a = sc.next()
Int a = sc.nextInt()
//한줄 \n을 기준으로 가져온다.
String line = sc.nextLine()

BufferedReader

  • N과M문제
    • 링크
    • 많은 양을 출력하는데 일반적인system.out.println으로는 느려서 시간초과를 발생한다.
  • 이외에도 많은 입력(10000줄을 넘기거나, 10000개의 공백단위로 입력을 받거나)할때에도 시간초과가 난다면 buffered를 사용해야 한다.
  • 백준과 같은 형태(입출력을 직접구현)의 코딩테스트는 이 방식이 낫다고 하다.

  • 입력 사용법
    • BufferedReader br = new BufferedReader(new InputStreamReader(System.in));로 받을 준비를 합니다.
    • br.readLine()으로 한줄씩 입력을 받습니다. 받는것은 String타입
    • 공백단위로 값을 잘라서 가져오기
      • StringTokenizer st = new StringTokenizer(br.readLine());로 공백단위로 자릅니다.
      • 값을 가져오는것은st.nextToken()을 통해 자른것을 조회할 수 있습니다.
  • 출력 사용법
    • BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    • bw.write(answer+"\n");
      • 출력할 내용을 적는다.
      • 개행이 따로 없기 때문에 \n과 같이 직접 적어줘야 한다.
    • bw.flush();
      • 위 명령으로 한번에 출력한다.
//import 되야하는것
//입력
import java.io.BufferedReader;
import java.io.InputStreamReader;
//출력
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;// 에러 처리
import java.util.StringTokenizer;

//입력들을 BufferedReader로 받습니다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int N1 = Integer.parseInt(st.nextToken());
int N2 = Integer.parseInt(st.nextToken());

//출력 준비
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("이거 출력이요\n");
bw.flush();

출력(StringBuilder)

  • 바로 출력하지 않고 값을 받아서 출력하는 stringbuilder
  • bufferedWriter와 사용법은 유사하다.
  • 따로 import하지 않아도 사용이 가능하다.
  • 선언
    • StringBuilder sb = new StringBuilder();
  • 출력 내용 붙이기
    • sb.append("출력이요");
  • 출력
    • stringbuilder를 출력하면 된다.
    • System.out.println(sb)
  • 사용법
StringBuilder sb = new StringBuilder();
//출력할 내용을 이어붙인다.
sb.append("문자열 ");
//출력
System.out.println(sb);