이전 섹션에서는 파일 바이트 입력 스트림을 구성하는 방법을 배웠습니다. 이 섹션에서는 입력 스트림을 사용하여 바이트를 읽고 스트림을 닫는 방법을 계속 배웁니다.
입력 스트림의 목적은 소스에서 데이터를 읽기 위한 채널을 제공하는 것입니다. 프로그램은 이 채널을 통해 소스에서 데이터를 읽을 수 있습니다. 파일 바이트 스트림은 파일을 순차적 으로 읽기 위해 상위 클래스에서 상속됩니다. , 스트림이 닫히지 않는 한 read 메서드를 호출할 때마다 파일 끝이나 파일 바이트 입력 스트림이 닫힐 때까지 파일의 나머지 내용을 순차적으로 읽습니다.
바이트 입력 스트림의 읽기 메소드는 소스의 데이터를 바이트 단위로 읽습니다.
입력 스트림은 이 메서드를 호출하여 소스에서 단일 바이트의 데이터를 읽습니다. 이 메서드는 바이트 값(0에서 255 사이의 정수)을 반환합니다.
입력 스트림은 이 메서드를 호출하여 소스에서 b.length 바이트를 바이트 배열 b로 읽으려고 시도하고 읽은 실제 바이트 수를 반환합니다. 파일 끝에 도달하면 -1이 반환됩니다.
입력 스트림은 이 메서드를 호출하여 소스에서 len 바이트를 바이트 배열 b로 읽으려고 시도하고 읽은 실제 바이트 수를 반환합니다. 파일 끝에 도달하면 -1이 반환되고, off 매개변수는 읽은 데이터 저장을 시작할 바이트 배열의 위치를 지정합니다.
참고 : FileInputStream 스트림은 스트림이 닫히지 않는 한 파일을 순차적으로 읽습니다. 읽기 메소드에 대한 각 호출은 소스의 끝이나 스트림이 닫힐 때까지 나머지 소스 콘텐츠를 순차적으로 읽습니다.
입력 스트림은 모두 close() 닫기 메서드를 제공합니다. 프로그램이 종료되면 모든 열린 스트림이 자동으로 닫히지만 프로그램이 스트림 사용을 마친 후에는 열려 있는 스트림을 명시적으로 닫는 것이 여전히 좋은 습관입니다. 오픈 스트림이 닫히지 않으면 다른 프로그램이 해당 스트림에서 사용하는 리소스를 조작하는 것이 허용되지 않을 수 있습니다.
예를 들어:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){intn=-1;byte[]a=newbyte[100];try{Filef=newFile(Main.java);InputStreamin=newFileInputStream(f);while( (n=in.read(a,0,100))!=-1){Strings=newString(a,0,n);System.out.print(s);}in.close();}catch(IOExceptione) {System.out.println(FilereadError+e);}}}
참고 : 읽은 바이트를 문자열로 변환할 때 실제 읽은 바이트는 위의 예와 같이 문자열로 변환되어야 합니다.
문자열=newString(a,0,n);
다음과 같이 쓸 수 없습니다:
Strings=newString(a,0,100);