English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 예제를 통해 Java BufferedReader 및 메서드를 배웁니다.
java.io 패키지의 BufferedReader 클래스는 다른 리더와 함께 사용하여 더 효율적으로 데이터(문자 단위로)를 읽을 수 있습니다.
애자克斯트 클래스 Reader를 상속받았습니다.
BufferedReader는 내부의8192개의 문자 버퍼
BufferedReader에서 읽기 작업을 수행하는 동안, 디스크에서 일부 문자를 읽어서 내부 버퍼에 저장합니다. 그리고 내부 버퍼에서 독립적으로 문자를 읽습니다.
따라서, 디스크와의 통신 횟수가 줄어듭니다. 이것이 BufferedReader를 사용하여 문자를 더 빠르게 읽을 수 있는 이유입니다.
BufferedReader를 생성하기 위해 먼저 java.io.BufferedReader 패키지를 가져와야 합니다. 패키지를 가져온 후에는 리더를 생성할 수 있습니다.
//FileReader를 생성합니다. FileReader file = new FileReader(String file); //BufferedReader를 생성합니다. BufferedReader buffer = new BufferedReader(file);
위의 예제에서는 buffer라는 BufferedReader와 file라는 FileReader를 생성했습니다.
이곳에서, BufferedReader의 내부 버퍼의 기본 크기는8192개의 문자. 그러나, 내부 버퍼의 크기를 지정할 수도 있습니다.
//일정한 크기의 내부 버퍼를 가진 BufferedReader를 생성합니다. BufferedReader buffer = new BufferedReader(file, int size);
버퍼는 파일에서 문자를 더 빠르게 읽는 데 도움이 됩니다.
BufferedReader 클래스는 Reader의 다른 메서드에 대한 구현을 제공합니다.
read() - 버퍼 레더의 내부 버퍼에서 단일 문자를 읽기
지정된 배열에 문자를 저장하는 방식으로 읽기 - read(char[] array)
지정된 배열에 start 위치에서 length 문자를 저장하는 방식으로 읽기- read(char[] array, int start, int length)
예를 들어, 우리는 다음과 같은 이름의 파일을 가정해 보겠습니다input.txt의 파일을, 다음과 같은 내용이 포함되어 있습니다.
This is a line of text inside the file.
BufferedReader를 사용하여 파일을 읽는 것을 시도해 보겠습니다.
import java.io.FileReader; import java.io.BufferedReader; class Main { public static void main(String[] args) { //문자 배열을 생성합니다 char[] array = new char[100]; try { //FileReader를 생성합니다 FileReader file = new FileReader("input.txt"); //BufferedReader를 생성합니다 BufferedReader input = new BufferedReader(file); //문자를 읽습니다 input.read(array); System.out.println("파일 데이터: "); System.out.println(array); //레더를 닫습니다 input.close(); } catch(Exception e) { e.getStackTrace(); } } }
출력 결과
파일 데이터: This is a line of text inside the file.
위의 예제에서는 input이라는 버퍼 레더를 생성했습니다. 버퍼 레더는input.txt파일 링크.
FileReader file = new FileReader("input.txt"); BufferedReader input = new BufferedReader(file);
여기서, 우리는 read() 메서드를 사용하여 버퍼 레더의 내부 버퍼에서 문자 배열을 읽습니다.
지정된 수의 문자를 버리고 건너뛰기 위해 skip() 메서드를 사용할 수 있습니다. 예를 들어
import java.io.FileReader; import java.io.BufferedReader; public class Main { public static void main(String args[]) { //문자 배열을 생성합니다 char[] array = new char[100]; try { //input.txt 파일이 다음과 같은 텍스트를 포함하고 있는 것을 가정해 보겠습니다 //This is a line of text inside the file. FileReader file = new FileReader("input.txt"); //BufferedReader를 생성합니다 BufferedReader input = new BufferedReader(file); //건너뜀5문자 input.skip(5); //문자를 읽습니다 input.read(array); System.out.println("건너뜀"}}5자릿수 후의 데이터: "); System.out.println(array); //레더를 닫습니다 input.close(); } catch(Exception e) { e.getStackTrace(); } } }
출력 결과
건너뜀5자릿수 후의 데이터: 파일 내에 있는 텍스트 행입니다.
위 예제에서 skip() 메서드를 사용하여 파일 레더에서 건너뜁니다5자릿수. 따라서, 원본 파일에서 'T', 'h', 'i', 's' 및 ' ' 문자는 건너뜁니다.
버퍼를 닫는 레더를 사용할 수 있습니다. close() 메서드를 호출한 후, 레더를 통해 데이터를 읽을 수 없게 됩니다.
메서드 | 설명 |
---|---|
ready() | 파일 레더가 읽을 준비가 되었는지 확인합니다 |
mark() | 마크 레더에서 읽은 데이터 위치 |
reset() | 마크 표시를 초기화하고, 레더에서 마크를 설정한 위치로 돌아갑니다 |