English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서 우리는 Java InputStream 클래스와 그 메서드를 예제를 통해 배울 것입니다.
java.io 패키지의 InputStream 클래스는 추상 슈퍼클래스로, 바이트의 입력 스트림을 나타냅니다.
InputStream은 추상 클래스이므로 그 자체는 사용할 수 없습니다. 하지만 그 서브클래스는 데이터를 읽을 수 있습니다.
InputStream 기능을 사용하기 위해 우리는 그 서브클래스를 사용할 수 있습니다. 그 서브클래스는 다음과 같습니다:
다음 강의에서는 모든 이러한 자식 클래스를 배웁니다.
InputStream을 생성하기 위해 먼저 java.io.InputStream 패키지를 가져와야 합니다. 패키지를 가져온 후 입력 스트림을 생성할 수 있습니다.
// 입력 스트림을 생성합니다; InputStream object1 = new FileInputStream();
여기서 우리는 FileInputStream을 사용하여 입력 스트림을 생성했습니다. InputStream은 추상 클래스이기 때문에 InputStream 객체를 생성할 수 없습니다.
주의:우리는 InputStream의 다른 자식 클래스에서도 입력 스트림을 생성할 수 있습니다.
InputStream 클래스는 그 자식 클래스에서 구현된 다양한 메서드를 제공합니다. 일부 일반적인 메서드는 다음과 같습니다;
read(); - 입력 스트림에서 바이트 데이터를 읽습니다;
read(byte[] array); - 지정된 배열에 바이트를 읽고 저장합니다;
available(); - 입력 스트림에서 사용 가능한 바이트 수를 반환합니다;
mark(); - 입력 스트림에서 데이터 위치를 마크합니다;
reset(); -마크를 설정한 위치로 컨트롤 포인트를 반환합니다;
markSupported();- mark()와 reset() 메서드를 지원하는지 확인합니다;
skips(); - 지정된 바이트 수를 건너뛰고 버립니다;
close(); - 입력 스트림을 닫기
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(); //입력 스트림을 닫기