Dino Rudy

[백준] Java-input.txt로 값 입력 받기 - 공룡 루디 본문

Algorithm/Baekjoon

[백준] Java-input.txt로 값 입력 받기 - 공룡 루디

Dino_Rudy 2021. 7. 16. 20:47

안녕하세요 Python-input.txt로 값 입력받기에 이어 Java-input.txt로 입력받기입니다.

 

바로 본론으로 들어가겠습니다.

 

오늘 예시는 가장 간단한 문제인 1000번 문제를 예시로 들겠습니다.

https://www.acmicpc.net/problem/1000

 

1000번: A+B

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

 Scanner 이용해서 input.txt로 입력받기!

 

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws FileNotFoundException {
        System.setIn(new FileInputStream("src/input.txt"));
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        System.out.println(a+b);
    }
}

백준 알고리즘을 풀 때 보통 Scanner 객체를 생성한 후 입력값을 받는 방법을 많이 사용합니다.

 

input.txt로 입력을 받기 위해서는 FileInputStream을 import 해주고

System.setIn(new FileInputStream("input.txt파일경로"))를 해주면 끝입니다.!!

 

제출할 때는 

System.setIn(new FileInputStream("src/input.txt")); 주석처리 잊지 마세요!

 

 BufferedReader 이용해서 input.txt로 입력받기!!

Scanner보다 빠르게 입력을 받고 싶다면 BufferedReader를 사용하면 됩니다.

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
        System.setIn(new FileInputStream("src/input.txt"));
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] s=br.readLine().split(" ");

        System.out.println(Integer.parseInt(s[0])+Integer.parseInt(s[1]));

    }
}

마찬가지로 핵심은

System.setIn(new FileInputStream("src/input.txt"));

통해 input.txt를 Standard 입력으로 사용한다고 reassign 해줍니다.

 

채점 시 해당 부분 주석처리 필수!!

 

지금까지 Java에서 input.txt로 입력을 받는 방법을 알아봤습니다.