JAVA

Java ) DataInputStream

Machine_웅 2023. 2. 17. 09:04
728x90
반응형

java.lang.Object

     -  java.io.InputStream

          - java.io.FilterInputStream 

              - java.io.DataInputStream

 

 

데이터 입력 스트림에의해 어플리케이션은

원시형의 Java 데이터를 기초의 입력 스트림로부터 머신에 존하지 않고 읽어들일 수가 있습니다.

어플리케이션은 데이터 출력 스트림을 사용해 데이터를 출력하는 것으로

그 데이터를 나중에 입력 스트림로부터 읽어들일 수도 있습니다.

 

 

DataInputStream

public DataInputStream(InputStream  in)

지정된 기본이 되는 InputStream를 사용하는 DataInputStream를 작성합니다.

파라미터:  in - 지정의 입력 스트림

 

 

메서드 상세

read

public final int read(byte[] b)
               throws IOException 

보존된 입력 스트림로부터 바이트수를 읽기, 그것을 버퍼 배열 b에 포함합니다.

실제로 읽힌 바이트수는 정수로서 리턴됩니다 .

 

이 메서드는 입력 데이터를 읽어들일 수 있게 되는지,

파일의 마지막이 검출되든가 혹은 예외가 Throw 될 때까지 블록 합니다.

 

b가 null인 경우는 NullPointerException가 발생 됩니다. 

b가 0인 경우, 바이트는 읽히지 않고, 0 이 리턴됩니다 .

그렇지 않은 경우는 1 바이트 이상의 read 처리를 실시합니다.

 

스트림이 파일의 마지막에 이르고, 읽어들이는 바이트가 없는 경우는 값 -1 이 리턴됩니다 .

그렇지 않은 경우는 1 바이트 이상이 읽혀b에 포함됩니다.

 

최초로 읽힌 바이트는 요소 b[0]에 포함되어 다음의 바이트는 b[1]에 포함됩니다.

읽히는 바이트수의 상한은, b 길이와 같습니다.

 

여기서, k를 실제로 읽힌 바이트 수라고 합니다.

읽힌 바이트는 요소 b[0] ~ b[k-1]에 포함되어 요소 b[k] ~ b[b.length-1]는 영향을 받지 않습니다.

 

파일의 마지막에 이르고 있는 이외의 이유로써 최초의 바이트를 읽어들일 수 없는 경우는 

IOException가 발생 됩니다.

 

특히, 입력 스트림이 닫고 있는 경우에는 IOException가 발생 됩니다.

read(b) 메서드의 효과는 아래와 같습니다.

 read(b, 0, b.length)  

오버라이드(override):클래스 FilterInputStream 내의 read

 

파라미터:

   b - 데이터의 read처의 버퍼

 

반환값:

  버퍼에 읽힌 바이트의 합계수. 스트림의 마지막에 이르러 데이터가 없는 경우는 -1

 

예외:

    IOException - 입출력 에러가 발생했을 경우

 

관련 항목:

    FilterInputStream.in, InputStream.read(byte[], int, int)

 

 

 

 

728x90
반응형