InputStream과 OutputStream은 모든 바이트기반 스트림의 조상이다.
https://standout.tistory.com/1470
InputStream의 메서드는 아래와같다.
int available()
현재 읽을 수 있는 바이트의 개수를 반환.
InputStream inputStream = new FileInputStream("file.txt");
int availableBytes = inputStream.available();
System.out.println("Available bytes: " + availableBytes);
[출력결과]
Available bytes: 1024
void close()
입력 스트림을 닫는다.
inputStream.close();
[출력결과]
출력 결과가 없다.
boolean markSupported()
입력 스트림이 mark() 및 reset() 메서드를 지원하는지 여부를 나타낸다.
mark()와 reset()의 기능지원은 선택적임으로 사용하기전에 호출해 지원여부를 확인해야한다.
boolean isMarkSupported = inputStream.markSupported();
System.out.println("Mark Supported: " + isMarkSupported);
[출력결과]
Mark Supported: true
void mark(int readlimit)
현재위치를 표시해 후에 reset에 의해 돌아갈 수 있도록 한다.
readlimit는 되돌아갈 수 있는 byte의 수.
inputStream.mark(100);
[출력결과]
출력 결과가 없다.
void reset()
마지막으로 표시한 위치로 이동.
inputStream.reset();
[출력결과]
출력 결과가 없다.
abstract int read()
입력 스트림으로부터 다음 바이트를 읽는다.
더 이상 읽어 올 데이터가 없으면 -1을 반환한다.
int nextByte = inputStream.read();
System.out.println("Next byte: " + nextByte);
[출력결과]
Next byte: 65 (예시로 'A'에 해당하는 ASCII 값)
int read(byte[] b)
배열 b만큼을 채우고 읽어온 데이터의 수를 반환한다.
byte[] buffer = new byte[10];
int bytesRead = inputStream.read(buffer);
System.out.println("Bytes read: " + bytesRead);
[출력결과]
Bytes read: 10
int read(byte[] b, int off, int len)
최대 len개의 byte를 읽어 배열 b의 off의 위치부터 저장한다.
byte[] buffer = new byte[10];
int bytesRead = inputStream.read(buffer, 0, 5);
System.out.println("Bytes read: " + bytesRead);
[출력결과]
Bytes read: 5
long skip(long n)
입력 스트림에서 n만큼의 바이트를 건너뛴다.
long bytesSkipped = inputStream.skip(10);
System.out.println("Bytes skipped: " + bytesSkipped);
[출력결과]
Bytes skipped: 10
OutputStream의 메서드는 아래와같다.
void close()
void flush()
abstract void write(int b)
void write(byte[] b, int off, int len)