English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 강의

Java 프로세스 제어

Java 배열

Java 객체지향(I)

Java 객체지향(II)

Java 객체지향(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 집합

Java Set 집합

Java 입력/출력(I/O)

Java Reader/Writer

Java 다른 주제

Java Reader 클래스

이 튜토리얼에서는 Java Reader, 그 서브클래스 및 그 메서드를 예제를 통해 이해할 것입니다.

java.io 패키지의 Reader 클래스는 문자 스트림을 대표하는 추상 슈퍼클래스입니다.

Reader는 추상 클래스이므로 자체적으로 작동하지 않습니다. 그러나 서브클래스는 데이터를 읽을 수 있습니다.

Reader 서브클래스

사용할 기능을 위해 Reader를 사용할 수 있습니다. 그 중 일부는 다음과 같습니다:

다음 튜토리얼에서는 모든 서브클래스를 학습할 것입니다.

Reader 생성

Reader를 생성하기 위해 먼저 java.io.Reader 패키지를 가져오는 것이 필요합니다. 패키지를 가져온 후 Reader를 생성할 수 있습니다.

// Reader 생성
Reader input = new FileReader();

이곳에서 우리는 FileReader 클래스를 사용하여 Reader를 생성했습니다. 이는 Reader가 추상 클래스이기 때문입니다. 따라서 Reader 객체를 생성할 수 없습니다.

주의:우리는 다른 서브클래스에서 ReaderReader를 생성할 수도 있습니다.

Reader 메서드

이 Reader 클래스는 서브클래스에서 구현된 메서드가 다릅니다. 일부 일반적인 메서드는 다음과 같습니다:

  • ready(); - Reader가 읽기를 준비했는지 확인합니다

  • read(char[] array)  - 지정된 배열에 스트림에서 읽은 문자를 저장합니다

  • read(char[] array, int start, int length)- 지정된 배열에 시작점부터 length와 같은 수의 문자를 읽습니다

  • mark(); - 스트림에서 읽은 데이터 위치를 표시합니다

  • reset(); - 스트림을 재설정합니다. 스트림이 표시되어 있다면 표시를 시도하고 다시 위치를 재정립합니다. 표시되지 않으면 적절한 특정 스트림의 일부 메서드를 재설정할 수 있습니다. 예를 들어, 시작점으로 이동하여 재설정할 수 있습니다.

  • skip(); -지정된 수의 문자를 스트림에서 버립니다

예제: FileReader의 Reader 사용

이렇게 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를 닫기