728x90
반응형
InputStream은 Java에서 바이트 기반의 입력 스트림을 나타내는 추상 클래스입니다. 이 클래스는 파일, 네트워크 연결, 메모리 버퍼 등 다양한 데이터 소스로부터 바이트 데이터를 읽는 데 사용됩니다. InputStream의 구체적인 서브클래스로는 FileInputStream, BufferedInputStream, ByteArrayInputStream, SocketInputStream 등이 있습니다.
- int read(byte[] b):
- 입력 스트림에서 주어진 바이트 배열 b에 데이터를 읽습니다. 읽은 바이트 수를 반환하며, 더 이상 읽을 데이터가 없으면 -1을 반환합니다.
- int read(byte[] b, int off, int len):
- 입력 스트림에서 주어진 바이트 배열 b의 특정 위치 off부터 len 길이만큼 데이터를 읽습니다. 읽은 바이트 수를 반환하며, 더 이상 읽을 데이터가 없으면 -1을 반환합니다.
- void close():
- 입력 스트림을 닫고 관련된 모든 시스템 자원을 해제합니다.
- long skip(long n):
- 입력 스트림에서 주어진 바이트 수 n만큼 건너뜁니다. 실제로 건너뛴 바이트 수를 반환합니다.
BufferedInputStream
BufferedInputStream은 InputStream의 서브클래스로, 버퍼를 사용하여 입력 스트림에서 효율적으로 데이터를 읽습니다. 작은 크기의 읽기 작업이 많을 경우 성능이 향상됩니다.
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class BufferedInputStreamExample {
public static void main(String[] args) {
String filePath = "example.txt";
try (InputStream inputStream = new BufferedInputStream(new FileInputStream(filePath))) {
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
while (bytesRead != -1) {
System.out.write(buffer, 0, bytesRead);
bytesRead = inputStream.read(buffer);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
728x90
반응형
'Programming > Java' 카테고리의 다른 글
[Java] 시스템 운영체제/서버 호스트(host) 정보 출력하기 (0) | 2024.06.08 |
---|---|
[Java]File Write/쓰기 (OutputStream/BufferedOutputStream) (0) | 2024.06.08 |
[Java]File 읽기(read)/쓰기(write) (0) | 2024.06.08 |
Causes of getting a java.lang.VerifyError (0) | 2024.05.28 |
[Java-자바]인터페이스(interface) (0) | 2017.02.05 |