JavaTM Platform
Standard Ed. 6

java.io
클래스 FileInputStream

java.lang.Object 
  상위를 확장 java.io.InputStream 
      상위를 확장 java.io.FileInputStream
모든 구현된 인터페이스:
Closeable


public class FileInputStream
extends InputStream

FileInputStream 는, 파일 시스템으로부터 입력 바이트를 가져옵니다. 어느 파일이 유효한가는 호스트 환경에 의존합니다.

FileInputStream 는, 이미지 데이터등의 생의 바이트의 스트림을 읽어들일 때 사용합니다. 문자의 스트림을 읽어들일 때는,FileReader 를 사용해 주세요.

도입된 버젼:
JDK1. 0
관련 항목:
File , FileDescriptor , FileOutputStream

생성자 의 개요
FileInputStream (File  file)
          파일 시스템으로 File 객체 file 에 의해 지정하는 실제의 파일에의 접속을 여는 것으로,FileInputStream 를 작성합니다.
FileInputStream (FileDescriptor  fdObj)
          파일 시스템의 실제의 파일에의 기존의 접속을 나타내는 파일 기술자 fdObj 를 사용해,FileInputStream 를 작성합니다.
FileInputStream (String  name)
          파일 시스템으로 경로명 name 에 의해 지정하는 실제의 파일에의 접속을 여는 것으로,FileInputStream 를 작성합니다.
 
메소드의 개요
 int available ()
          이 입력 스트림의 메소드의 다음의 호출에 의해, 블록 하지 않고 이 입력 스트림로부터 읽어들일 수가 있는 (또는 스킵 할 수 있다) 추정 바이트수를 돌려줍니다.
 void close ()
          파일 입력 스트림을 닫아 이 스트림에 관련하는 system resource를 해제합니다.
protected  void finalize ()
          파일 입력 스트림에의 참조가 존재하지 않게 되었을 때에, 이 스트림의 close 메소드가 확실히 불려 가도록(듯이) 합니다.
 FileChannel getChannel ()
          이 파일 입력 스트림에 관련지을 수 있던, 일의 FileChannel 객체를 돌려줍니다.
 FileDescriptor getFD ()
          이 FileInputStream 에 사용되고 있는 파일 시스템의 실제의 파일에의 접속을 나타내는 FileDescriptor 객체를 돌려줍니다.
 int read ()
          이 입력 스트림로부터 데이터의 바이트를 읽어들입니다.
 int read (byte[] b)
          최대 b.length 바이트까지의 데이터를, 이 입력 스트림로부터 바이트 배열에 읽어들입니다.
 int read (byte[] b, int off, int len)
          최대 len 바이트까지의 데이터를, 이 입력 스트림로부터 바이트 배열에 읽어들입니다.
 long skip (long n)
          입력 스트림로부터 n 바이트분을 스킵 및 파기합니다.
 
클래스 java.io. InputStream 로부터 상속된 메소드
mark , markSupported , reset
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

FileInputStream

public FileInputStream(String  name)
                throws FileNotFoundException 
파일 시스템으로 경로명 name 에 의해 지정하는 실제의 파일에의 접속을 여는 것으로,FileInputStream 를 작성합니다. 이 파일 접속을 나타내기 위해서(때문에), 새로운 FileDescriptor 객체가 생성됩니다.  

우선, 시큐리티 매니저가 존재하는 경우,checkRead 메소드가 name 인수를 인수로서 불려 갑니다.  

지정된 파일이 존재하지 않는지, 보통 파일은 아니고 디렉토리인지, 또는 하등의 이유로써 열릴 수가 없는 경우는,FileNotFoundException 가 throw 됩니다.

파라미터:
name - 시스템 의존의 파일명
예외:
FileNotFoundException - 파일이 존재하지 않는 경우, 일반적으로의 파일이 아니라 디렉토리인 경우, 또는 하등의 이유로써 열릴 수가 없는 경우
SecurityException - 시큐리티 매니저가 존재해,checkRead 메소드가 파일에의 읽어들여 액세스를 거부하는 경우
관련 항목:
SecurityManager.checkRead(java.lang.String)

FileInputStream

public FileInputStream(File  file)
                throws FileNotFoundException 
파일 시스템으로 File 객체 file 에 의해 지정하는 실제의 파일에의 접속을 여는 것으로,FileInputStream 를 작성합니다. 이 파일 접속을 나타내기 위해서(때문에), 새로운 FileDescriptor 객체가 생성됩니다.  

우선, 시큐리티 매니저가 존재하는 경우,checkRead 메소드가,file 인수에 의해 나타내지는 패스를 인수로서 불려 갑니다.  

지정된 파일이 존재하지 않는지, 보통 파일은 아니고 디렉토리인지, 또는 하등의 이유로써 열릴 수가 없는 경우는,FileNotFoundException 가 throw 됩니다.

파라미터:
file - 읽을 위해(때문에) 열리는 파일
예외:
FileNotFoundException - 파일이 존재하지 않는 경우, 일반적으로의 파일이 아니라 디렉토리인 경우, 또는 하등의 이유로써 열릴 수가 없는 경우
SecurityException - 시큐리티 매니저가 존재해,checkRead 메소드가 파일에의 읽어들여 액세스를 거부하는 경우
관련 항목:
File.getPath() , SecurityManager.checkRead(java.lang.String)

FileInputStream

public FileInputStream(FileDescriptor  fdObj)
파일 시스템의 실제의 파일에의 기존의 접속을 나타내는 파일 기술자 fdObj 를 사용해,FileInputStream 를 작성합니다.  

시큐리티 매니저가 존재하는 경우는, 파일 기술자를 읽어들여도 괜찮은지 어떤지를 확인하기 위해서, 파일 기술자 fdObj 를 인수로서 checkRead 메소드가 불려 갑니다. 파일 기술자에게로의 읽어들여 액세스가 거부되면(자),SecurityException 가 throw 됩니다.  

fdObj 가 null 의 경우는,NullPointerException 가 throw 됩니다.

파라미터:
fdObj - 읽을 위해(때문에) 열리는 파일 기술자
예외:
SecurityException - 시큐리티 매니저가 존재해,checkRead 메소드가 파일 기술자에게로의 읽어들여 액세스를 거부하는 경우
관련 항목:
SecurityManager.checkRead(java.io.FileDescriptor)
메소드의 상세

read

public int read()
         throws IOException 
이 입력 스트림로부터 데이터의 바이트를 읽어들입니다. 입력이 아직 이용할 수 없는 경우, 이 메소드는 블록 됩니다.

정의:
클래스 InputStream 내의 read
반환값:
데이터의 다음의 바이트. 파일의 마지막에 이르렀을 경우는 -1
예외:
IOException - 입출력 에러가 발생했을 경우

read

public int read(byte[] b)
         throws IOException 
최대 b.length 바이트까지의 데이터를, 이 입력 스트림로부터 바이트 배열에 읽어들입니다. 이 메소드는, 입력의 일부를 이용할 수 있게 될 때까지 블록 합니다.

오버라이드(override):
클래스 InputStream 내의 read
파라미터:
b - 데이터의 read처의 버퍼
반환값:
버퍼에 읽힌 바이트의 합계수. 또는, 파일의 마지막에 이르렀기 때문에 그 이상 데이터가 존재하지 않는 경우는 -1
예외:
IOException - 입출력 에러가 발생했을 경우
관련 항목:
InputStream.read(byte[], int, int)

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException 
최대 len 바이트까지의 데이터를, 이 입력 스트림로부터 바이트 배열에 읽어들입니다. len 가 0 이 아닌 경우, 이 메소드는 입력의 일부를 이용할 수 있게 될 때까지 블록 합니다. 그렇지 않은 경우, 바이트는 읽히지 않고,0 이 돌려주어집니다.

오버라이드(override):
클래스 InputStream 내의 read
파라미터:
b - 데이터의 read처의 버퍼
off - 전송처의 배열 b 내에서의 개시 오프셋(offset)
len - 읽히는 최대 바이트수
반환값:
버퍼에 읽힌 바이트의 합계수. 또는, 파일의 마지막에 이르렀기 때문에 그 이상 데이터가 존재하지 않는 경우는 -1
예외:
NullPointerException - bnull 의 경우
IndexOutOfBoundsException - off 가 부의 경우,len 가 부의 경우, 또는 lenb.length - off 보다 큰 경우
IOException - 입출력 에러가 발생했을 경우
관련 항목:
InputStream.read()

skip

public long skip(long n)
          throws IOException 
입력 스트림로부터 n 바이트분을 스킵 및 파기합니다.

다양한 이유로부터,skip 메소드는 지정보다 적은 바이트수 밖에 스킵 하지 않는 것이 있습니다. 0 의 경우도 있습니다. n 가 부의 경우는,InputStream 슈퍼 클래스의 skip 메소드는 아무것도 실행합니다만,IOException 가 throw 됩니다. 스킵 된 실제의 바이트수가 돌려주어집니다.

이 메소드에 의해 스킵 되는 바이트수가, 배킹 파일내의 나머지의 바이트수보다 많은 경우가 있습니다. 이 경우, 예외는 생성되지 않고, 스킵 된 바이트수에는, 배킹 파일의 EOF 를 넘은 바이트수가 포함될 가능성이 있습니다. 말미를 넘어 스킵 한 뒤에 스트림로부터 읽어들이려고 하면(자), 파일의 마지막을 나타내는 -1 이 돌려주어집니다.

오버라이드(override):
클래스 InputStream 내의 skip
파라미터:
n - 스킵 하는 바이트수
반환값:
스킵 된 실제의 바이트수
예외:
IOException - n 가 부의 경우, 스트림이 시크를 지원하고 있지 않는 경우, 또는 입출력 에러가 발생했을 경우

available

public int available()
              throws IOException 
이 입력 스트림의 메소드의 다음의 호출에 의해, 블록 하지 않고 이 입력 스트림로부터 읽어들일 수가 있는 (또는 스킵 할 수 있다) 추정 바이트수를 돌려줍니다. 다음의 호출은, 같은 thread의 경우도 다른 thread의 경우도 있습니다. 이러한 다수의 바이트를 1 회에 읽어들이거나 스킵 하거나 하는 것으로 블록 할 것은 없습니다만, 읽어들이는 또는 스킵 하는 바이트수가 적게 되는 일이 있습니다.

경우에 따라서는, 블록이 없는 read (또는 스킵)는, 단지 처리가 늦을 때에 블록 되어 있는 것처럼 보이는 일이 있습니다. 예를 들어, 저속의 네트워크를 개입시켜 대용량의 파일을 읽어들이는 경우 등입니다.

오버라이드(override):
클래스 InputStream 내의 available
반환값:
블록 하지 않고 이 입력 스트림로부터 읽어들일 수가 있는 (또는 스킵 할 수 있다) 추정 바이트수
예외:
IOException - close 의 호출에 의해, 이 파일 입력 스트림이 닫혀졌을 경우, 또는 입출력 에러가 발생했을 경우

close

public void close()
           throws IOException 
파일 입력 스트림을 닫아 이 스트림에 관련하는 system resource를 해제합니다.

이 스트림에 채널을 관련지을 수 있고 있는 경우는, 그 채널도 닫습니다.

정의:
인터페이스 Closeable 내의 close
오버라이드(override):
클래스 InputStream 내의 close
예외:
IOException - 입출력 에러가 발생했을 경우

getFD

public final FileDescriptor  getFD()
                           throws IOException 
FileInputStream 에 사용되고 있는 파일 시스템의 실제의 파일에의 접속을 나타내는 FileDescriptor 객체를 돌려줍니다.

반환값:
이 스트림에 관련하는 파일 기술자 객체
예외:
IOException - 입출력 에러가 발생했을 경우
관련 항목:
FileDescriptor

getChannel

public FileChannel  getChannel()
이 파일 입력 스트림에 관련지을 수 있던, 일의 FileChannel 객체를 돌려줍니다.

반환된 채널의 java.nio.channels.FileChannel#position()position 의 초기치는, 그때까지 파일로부터 읽힌 바이트수로 동일해집니다. 이 스트림로부터 바이트를 읽어들이면(자) 채널의 위치가 증분 됩니다. 채널의 위치가 명시적으로 변경되었을 경우, 또는 read야는 변경되었을 경우는, 이 스트림의 파일 위치가 변경됩니다.

반환값:
이 파일 입력 스트림에 관련지을 수 있었던 파일 채널
도입된 버젼:
1.4

finalize

protected void finalize()
                 throws IOException 
파일 입력 스트림에의 참조가 존재하지 않게 되었을 때에, 이 스트림의 close 메소드가 확실히 불려 가도록(듯이) 합니다.

오버라이드(override):
클래스 Object 내의 finalize
예외:
IOException - 입출력 에러가 발생했을 경우
관련 항목:
close()

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.