java.io
Class FileInputStream

java.lang.Object
  extended byjava.io.InputStream
      extended byjava.io.FileInputStream
Direct Known Subclasses:
SocketInputStream

public class FileInputStream
extends InputStream

A FileInputStream obtains input bytes from a file in a file system. What files are available depends on the host environment.

FileInputStream is meant for reading streams of raw bytes such as image data. For reading streams of characters, consider using FileReader.

Since:
JDK1.0
Author:
Arthur van Hoff
See Also:
File, FileDescriptor, FileOutputStream

Field Summary
private  FileChannel channel
           
private  FileDescriptor fd
           
 
Fields inherited from class java.io.InputStream
 
Constructor Summary
FileInputStream(File file)
          Creates a FileInputStream by opening a connection to an actual file, the file named by the File object file in the file system.
FileInputStream(FileDescriptor fdObj)
          Creates a FileInputStream by using the file descriptor fdObj, which represents an existing connection to an actual file in the file system.
FileInputStream(String name)
          Creates a FileInputStream by opening a connection to an actual file, the file named by the path name name in the file system.
 
Method Summary
 int available()
          Returns the number of bytes that can be read from this file input stream without blocking.
 void close()
          Closes this file input stream and releases any system resources associated with the stream.
private  void close0()
           
protected  void finalize()
          Ensures that the close method of this file input stream is called when there are no more references to it.
 FileChannel getChannel()
          Returns the unique FileChannel object associated with this file input stream.
 FileDescriptor getFD()
          Returns the FileDescriptor object that represents the connection to the actual file in the file system being used by this FileInputStream.
private static void initIDs()
           
private  void open(String name)
          Opens the specified file for reading.
 int read()
          Reads a byte of data from this input stream.
 int read(byte[] b)
          Reads up to b.length bytes of data from this input stream into an array of bytes.
 int read(byte[] b, int off, int len)
          Reads up to len bytes of data from this input stream into an array of bytes.
private  int readBytes(byte[] b, int off, int len)
          Reads a subarray as a sequence of bytes.
 long skip(long n)
          Skips over and discards n bytes of data from the input stream.
 
Methods inherited from class java.io.InputStream
mark, markSupported, reset
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fd

private FileDescriptor fd

channel

private FileChannel channel
Constructor Detail

FileInputStream

public FileInputStream(String name)
                throws FileNotFoundException
Creates a FileInputStream by opening a connection to an actual file, the file named by the path name name in the file system. A new FileDescriptor object is created to represent this file connection.

First, if there is a security manager, its checkRead method is called with the name argument as its argument.

If the named file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading then a FileNotFoundException is thrown.

Parameters:
name - the system-dependent file name.
Throws:
FileNotFoundException - if the file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading.
SecurityException - if a security manager exists and its checkRead method denies read access to the file.
See Also:
SecurityManager.checkRead(java.lang.String)

FileInputStream

public FileInputStream(File file)
                throws FileNotFoundException
Creates a FileInputStream by opening a connection to an actual file, the file named by the File object file in the file system. A new FileDescriptor object is created to represent this file connection.

First, if there is a security manager, its checkRead method is called with the path represented by the file argument as its argument.

If the named file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading then a FileNotFoundException is thrown.

Parameters:
file - the file to be opened for reading.
Throws:
FileNotFoundException - if the file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading.
SecurityException - if a security manager exists and its checkRead method denies read access to the file.
See Also:
File.getPath(), SecurityManager.checkRead(java.lang.String)

FileInputStream

public FileInputStream(FileDescriptor fdObj)
Creates a FileInputStream by using the file descriptor fdObj, which represents an existing connection to an actual file in the file system.

If there is a security manager, its checkRead method is called with the file descriptor fdObj as its argument to see if it's ok to read the file descriptor. If read access is denied to the file descriptor a SecurityException is thrown.

If fdObj is null then a NullPointerException is thrown.

Parameters:
fdObj - the file descriptor to be opened for reading.
Throws:
SecurityException - if a security manager exists and its checkRead method denies read access to the file descriptor.
See Also:
SecurityManager.checkRead(java.io.FileDescriptor)
Method Detail

open

private void open(String name)
           throws FileNotFoundException
Opens the specified file for reading.

Parameters:
name - the name of the file
Throws:
FileNotFoundException

read

public int read()
         throws IOException
Reads a byte of data from this input stream. This method blocks if no input is yet available.

Specified by:
read in class InputStream
Returns:
the next byte of data, or -1 if the end of the file is reached.
Throws:
IOException - if an I/O error occurs.

readBytes

private int readBytes(byte[] b,
                      int off,
                      int len)
               throws IOException
Reads a subarray as a sequence of bytes.

Parameters:
b - the data to be written
off - the start offset in the data
len - the number of bytes that are written
Throws:
IOException - If an I/O error has occurred.

read

public int read(byte[] b)
         throws IOException
Reads up to b.length bytes of data from this input stream into an array of bytes. This method blocks until some input is available.

Overrides:
read in class InputStream
Parameters:
b - the buffer into which the data is read.
Returns:
the total number of bytes read into the buffer, or -1 if there is no more data because the end of the file has been reached.
Throws:
IOException - if an I/O error occurs.
See Also:
InputStream.read(byte[], int, int)

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
Reads up to len bytes of data from this input stream into an array of bytes. This method blocks until some input is available.

Overrides:
read in class InputStream
Parameters:
b - the buffer into which the data is read.
off - the start offset of the data.
len - the maximum number of bytes read.
Returns:
the total number of bytes read into the buffer, or -1 if there is no more data because the end of the file has been reached.
Throws:
IOException - if an I/O error occurs.
See Also:
InputStream.read()

skip

public long skip(long n)
          throws IOException
Skips over and discards n bytes of data from the input stream. The skip method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly 0. The actual number of bytes skipped is returned.

Overrides:
skip in class InputStream
Parameters:
n - the number of bytes to be skipped.
Returns:
the actual number of bytes skipped.
Throws:
IOException - if an I/O error occurs.

available

public int available()
              throws IOException
Returns the number of bytes that can be read from this file input stream without blocking.

Overrides:
available in class InputStream
Returns:
the number of bytes that can be read from this file input stream without blocking.
Throws:
IOException - if an I/O error occurs.

close

public void close()
           throws IOException
Closes this file input stream and releases any system resources associated with the stream.

If this stream has an associated channel then the channel is closed as well.

Overrides:
close in class InputStream
Throws:
IOException - if an I/O error occurs.

getFD

public final FileDescriptor getFD()
                           throws IOException
Returns the FileDescriptor object that represents the connection to the actual file in the file system being used by this FileInputStream.

Returns:
the file descriptor object associated with this stream.
Throws:
IOException - if an I/O error occurs.
See Also:
FileDescriptor

getChannel

public FileChannel getChannel()
Returns the unique FileChannel object associated with this file input stream.

The initial position of the returned channel will be equal to the number of bytes read from the file so far. Reading bytes from this stream will increment the channel's position. Changing the channel's position, either explicitly or by reading, will change this stream's file position.

Returns:
the file channel associated with this file input stream
Since:
1.4

initIDs

private static void initIDs()

close0

private void close0()
             throws IOException
Throws:
IOException

finalize

protected void finalize()
                 throws IOException
Ensures that the close method of this file input stream is called when there are no more references to it.

Overrides:
finalize in class Object
Throws:
IOException - if an I/O error occurs.
See Also:
close()