충분히 쌓여가는
Scanner vs BufferedReader/BufferedWriter 본문
- 먼저 살펴보기
input data: 1 2 3
Scanner
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
- Scanner 객체 생성 후
- nextInt 함수를 사용하여 변수를 저장할 수 있음
BufferedReader
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());
int c = Integer.parseInt(st.nextToken());
- BufferedReader 객체 생성 후
- BufferedReader 객체 안에 InputStreamReader 객체 생성 해야 함
- readLine 함수로 받으면 한 줄 씩 String 형태로 받게 됨
- -> StringTokenizer를 생성하여 받아줘야 함
- StringTokenizer로 받은 값을 int 형태로 파싱해줘야 함
BufferedReader/BufferedWriter
- BufferedReader/BufferedWriter는 버퍼를 이용해서 입출력의 효율을 높일 수 있도록 해주는 역할 해줌
- 버퍼를 이용하면 효율이 비교할 수 없을 정도로 좋아짐
- BufferedReader의 readLine()을 사용하면 데이터를 라인단위로 읽을 수 있고,
- BufferedWriter는 readLine()이라는 줄바꿈 해주는 메서드를 가지고 있다
import java.io.*;
public class BufferedReaderEX1 {
public static void main(String[] args) {
try {
FileReader fr = new FileReader("BufferedReader.java");
BufferedReader br = new BufferedReader(fr);
String line = "";
for (int i = 0; (line = br.readLine()) != null; i++) {
// "/"를 포함한 라인을 출력
if (line.indexOf(";") !=- 1)
System.out.println(i + ":" + line);
}
br.close();
} catch (IOException e) {}
}
}
- BufferedReaderdml readline()을 이용해서 파일을 라인단위로 읽은 다음 indexOf()를 이용해 ;를 포함하고 있는지 확인하여 출력
- 파일에서 특정 문자 또는 문자열을 포함한 라인을 쉽게 찾아낼 수 있음
'Java' 카테고리의 다른 글
자바 프로그램 구조 (0) | 2023.01.25 |
---|---|
.close() (0) | 2023.01.13 |
기본형과 참조형 (0) | 2023.01.09 |
변수 variable (0) | 2023.01.06 |
자바 클래스 작성 (1) | 2023.01.06 |