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 InputStream 클래스

이 튜토리얼에서 우리는 Java InputStream 클래스와 그 메서드를 예제를 통해 배울 것입니다.

java.io 패키지의 InputStream 클래스는 추상 슈퍼클래스로, 바이트의 입력 스트림을 나타냅니다.

InputStream은 추상 클래스이므로 그 자체는 사용할 수 없습니다. 하지만 그 서브클래스는 데이터를 읽을 수 있습니다.

InputStream 서브클래스

InputStream 기능을 사용하기 위해 우리는 그 서브클래스를 사용할 수 있습니다. 그 서브클래스는 다음과 같습니다:

다음 강의에서는 모든 이러한 자식 클래스를 배웁니다.

입력 스트림을 생성합니다;

InputStream을 생성하기 위해 먼저 java.io.InputStream 패키지를 가져와야 합니다. 패키지를 가져온 후 입력 스트림을 생성할 수 있습니다.

// 입력 스트림을 생성합니다;
InputStream object1 = new FileInputStream();

여기서 우리는 FileInputStream을 사용하여 입력 스트림을 생성했습니다. InputStream은 추상 클래스이기 때문에 InputStream 객체를 생성할 수 없습니다.

주의:우리는 InputStream의 다른 자식 클래스에서도 입력 스트림을 생성할 수 있습니다.

InputStream 메서드

InputStream 클래스는 그 자식 클래스에서 구현된 다양한 메서드를 제공합니다. 일부 일반적인 메서드는 다음과 같습니다;

  • read(); - 입력 스트림에서 바이트 데이터를 읽습니다;

  • read(byte[] array); - 지정된 배열에 바이트를 읽고 저장합니다;

  • available(); - 입력 스트림에서 사용 가능한 바이트 수를 반환합니다;

  • mark(); - 입력 스트림에서 데이터 위치를 마크합니다;

  • reset(); -마크를 설정한 위치로 컨트롤 포인트를 반환합니다;

  • markSupported();- mark()와 reset() 메서드를 지원하는지 확인합니다;

  • skips(); - 지정된 바이트 수를 건너뛰고 버립니다;

  • close(); - 입력 스트림을 닫기

예제: InputStream 사용 파일 입력 스트림

FileInputStream 클래스를 사용하여 InputStream의 메서드를 구현하는 예제는 다음과 같습니다.

가능한 경우, 이름이input.txt의 파일이며, 다음과 같은 내용을 포함하고 있습니다.

이는 파일에 있는 한 줄 텍스트입니다.

파일을 읽기 위해 FileInputStream (InputStream의 자식 클래스)를 사용해 보겠습니다.

import java.io.FileInputStream;
import java.io.InputStream;
public class Main {
    public static void main(String args[]) {
        byte[] array = new byte[100];
        try {
            InputStream input = new FileInputStream("input.txt");
            System.out.println("파일에 있는 사용 가능 바이트: "); + input.available());
            //입력 스트림에서 바이트를 읽습니다;
            input.read(array);
            System.out.println("파일에서 읽은 데이터: ");
            //바이트 배열을 문자열로 변환
            String data = new String(array);
            System.out.println(data);
            //입력 스트림을 닫기
            input.close();
        }
        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

출력 결과

파일에서 사용할 수 있는 바이트: 35
파일에서 읽은 데이터:
이는 파일에 있는 한 줄 텍스트입니다.

위의 예제에서 우리는 FileInputStream 클래스를 사용하여 입력 스트림을 생성했습니다. 입력 스트림은 파일과input.txt연결.

InputStream input = new FileInputStream("input.txt");

그렇게 하기 위해input.txt파일에서 데이터를 읽을 때, 우리는 이 두 가지 메서드를 구현했습니다.

input.read(array);      //입력 스트림에서 데이터를 읽기
input.close();             //입력 스트림을 닫기