이 게시물은 다음 링크를 참조하여 학습했습니다.
[JAVA] 입출력 _ Scanner,BufferedReader, StringTokenizer
자바의 입출력 Scanner BufferedReader StringTokenizer 문자열로 활용하기 위해 사용 (문자열에 최적화) Scanner 보다 빠르다 1. Scanner 입력 형태 1 2 3 4 5 6 7 //Scanner를 사용했을시 입력 형태. Scann..
eonhwa-theme.tistory.com
(Java)Scanner vs BufferedReader
오늘은 Scanner과 BufferedReader에 대해서 작성하려고 합니다. 사용자로부터 콘솔에 어떤 값을 입력 받은 후 출력하는 대표적인 클래스들 입니다. 하지만 이 두개가 다르다는 것을 알고 계셨나요? 알
yeon-kr.tistory.com
[Java/독학] 자바 System.out - print(출력)함수와 스캐너(입력) 파트 1
안녕하세요? 휴몬랩입니다. 우리 다 같이 2주 안에 JAVA 프로그래밍 언어 기초 개념을 마스터해볼까요?...
blog.naver.com
원래 C++로 코딩테스트를 준비했었는데, 이번에 코딩테스트에 떨어지기도 하고, C++을 허용 안하는 기업도 있어서 Java로 언어를 바꾸려고 한다.
그래서 Java 관련 내용들을 정리하려고 하는데, 그 첫 번째 게시물 입출력이다.
이 게시물에서 정리하는 내용은 Java 입출력의 전부가 아니라 내가 아는 입출력들을 정리한 것이다!
1. 입력
1-1. Scanner
스캐너 객체를 이용한 입력 방법으로 스캐너 객체는 여러개를 생성할 수 있지만, 일반적으로 하나만 생성한다.
1
2
3
4
5
6
|
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long l = sc.nextLong();
String str = sc.next();
String str2 = sc.nextLine();
|
cs |
1-2. BufferedReader
BufferedReader도 마찬가지로 일반적으로 하나의 객체만 생성한다.
1
2
3
|
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
|
cs |
BufferedReader의 경우 줄단위로 입력을 받기 때문에 한줄에 여러개의 데이터를 받을 경우 데이터를 잘라서 활용해야 한다.
데이터를 자르는 방법으로는
1. String.split() 메서드를 활용하는 방법
1
2
3
4
5
6
|
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
for(int i=0; i<str.length; i++){
System.out.println(Integer.parseInt(str[i]));
}
|
cs |
2. StringTokenizer를 사용하는 방법
1
2
3
4
5
6
7
8
9
|
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
// str1 str2 str3 str4 입력
st.nextToken() // str1
st.nextToken() // str2
st.nextToken() // str3
st.nextToken() // str4
|
cs |
StringTokenizer가 String의 split메서드가 좀더 빠르다고 한다.
StringTokenizer에 대해서는 String을 정리할때 정리할 것이다.
스캐너는 정규 표현식을 사용해서 파싱을 하기 때문에, BufferedReader가 입력 속도가 빠르다.
2. 출력
2-1. 시스템 출력
Java의 시스템 출력에는 크게 아래 3가지가 있다.
(1) System.out.print() -> 값을 그대로 출력함
(2) System.out.printf() -> C언어의 printf()와 동일, 지시자 사용
(3) System.out.println() -> System.out.print()에서 "\n"이 추가됨. 자동 줄바꿈
2-2. BufferedWriter
1
2
3
4
5
|
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("Hello World!");
bw.flush();
bw.close();
|
cs |
BufferedWriter에서 write() 메서드는 BufferedWriter에 문자열을 저장하는 기능이다.
다른 블로그에서 write()를 출력 메서드라고 소개하는 글들이 많았는데, 저것만 쓰면 출력 안된다....
flush() 메서드를 써줘야 저장되어있는 문자열들을 출력하고, 다 사용하고나서 메모리 낭비를 막기위해 close()해준다.
'Legacy' 카테고리의 다른 글
[Java#3] Array, ArrayList, Arrays (0) | 2022.05.02 |
---|---|
[Java#2] String, StringBuilder (0) | 2022.04.29 |
[C++#5-5] map (2) | 2022.04.18 |
[C++#5-4] set (0) | 2022.04.18 |
[C++#5-3] queue (0) | 2022.04.18 |