English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 Java Reader, 그 서브클래스 및 그 메서드를 예제를 통해 이해할 것입니다.
java.io 패키지의 Reader 클래스는 문자 스트림을 대표하는 추상 슈퍼클래스입니다.
Reader는 추상 클래스이므로 자체적으로 작동하지 않습니다. 그러나 서브클래스는 데이터를 읽을 수 있습니다.
사용할 기능을 위해 Reader를 사용할 수 있습니다. 그 중 일부는 다음과 같습니다:
다음 튜토리얼에서는 모든 서브클래스를 학습할 것입니다.
Reader를 생성하기 위해 먼저 java.io.Reader 패키지를 가져오는 것이 필요합니다. 패키지를 가져온 후 Reader를 생성할 수 있습니다.
// Reader 생성 Reader input = new FileReader();
이곳에서 우리는 FileReader 클래스를 사용하여 Reader를 생성했습니다. 이는 Reader가 추상 클래스이기 때문입니다. 따라서 Reader 객체를 생성할 수 없습니다.
주의:우리는 다른 서브클래스에서 ReaderReader를 생성할 수도 있습니다.
이 Reader 클래스는 서브클래스에서 구현된 메서드가 다릅니다. 일부 일반적인 메서드는 다음과 같습니다:
ready(); - Reader가 읽기를 준비했는지 확인합니다
read(char[] array) - 지정된 배열에 스트림에서 읽은 문자를 저장합니다
read(char[] array, int start, int length)- 지정된 배열에 시작점부터 length와 같은 수의 문자를 읽습니다
mark(); - 스트림에서 읽은 데이터 위치를 표시합니다
reset(); - 스트림을 재설정합니다. 스트림이 표시되어 있다면 표시를 시도하고 다시 위치를 재정립합니다. 표시되지 않으면 적절한 특정 스트림의 일부 메서드를 재설정할 수 있습니다. 예를 들어, 시작점으로 이동하여 재설정할 수 있습니다.
skip(); -지정된 수의 문자를 스트림에서 버립니다
이렇게 FileReader 클래스를 사용하여 Reader의 메서드를 구현하는 방법을 설명합니다.
이제 우리는 이름이input.txt의 파일이 있습니다. 이 파일은 다음과 같은 내용을 포함하고 있습니다.
This is a line of text inside the file.
이제 FileReader(Reader의 서브클래스)를 사용하여 이 파일을 읽는 것을 시도해 보겠습니다.
import java.io.Reader; import java.io.FileReader; class Main { public static void main(String[] args) { // 문자 배열을 생성합니다 char[] array = new char[100]; try { //FileReader를 사용하여 Reader를 생성합니다 Reader input = new FileReader("input.txt"); //Reader가 준비되었는지 확인합니다 System.out.println("流中有数据吗? "); + input.ready()); //문자를 읽습니다 input.read(array); System.out.println("流中的数据:"); System.out.println(array); // reader를 닫기 input.close(); } catch(Exception e) { e.getStackTrace(); } } }
출력 결과
스트림에 데이터가 있나요? true 스트림에 있는 데이터: This is a line of text inside the file.
위의 예제에서 우리는 FileReader 클래스를 사용하여 리더를 생성했습니다. 리더는 파일과input.txt연결.
Reader input = new FileReader("input.txt");
Reader input = new FileReader("input.txt");을 통해input.txt파일에서 데이터를 읽기, 우리는 이러한 메서드를 구현했습니다.
input.read(); //reader에서 데이터를 읽기 input.close(); //reader를 닫기