FileDocCategorySizeDatePackage
FileImageOutputStream.javaAPI DocJava SE 5 API3751Fri Aug 26 14:57:32 BST 2005javax.imageio.stream

FileImageOutputStream

public class FileImageOutputStream extends ImageOutputStreamImpl
An implementation of ImageOutputStream that writes its output directly to a File or RandomAccessFile.
version
0.5

Fields Summary
private RandomAccessFile
raf
Constructors Summary
public FileImageOutputStream(File f)
Constructs a FileImageOutputStream that will write to a given File.

param
f a File to write to.
exception
IllegalArgumentException if f is null.
exception
SecurityException if a security manager exists and does not allow write access to the file.
exception
FileNotFoundException if f does not denote a regular file or it cannot be opened for reading and writing for any other reason.
exception
IOException if an I/O error occurs.

        this(f == null ? null : new RandomAccessFile(f, "rw"));
    
public FileImageOutputStream(RandomAccessFile raf)
Constructs a FileImageOutputStream that will write to a given RandomAccessFile.

param
raf a RandomAccessFile to write to.
exception
IllegalArgumentException if raf is null.

        if (raf == null) {
            throw new IllegalArgumentException("raf == null!");
        }
        this.raf = raf;
    
Methods Summary
public voidclose()

        super.close();
        raf.close();
    
public longlength()

        try {
            checkClosed();
            return raf.length();
        } catch (IOException e) {
            return -1L;
        }
    
public intread()

        checkClosed();
        bitOffset = 0;
        int val = raf.read();
        if (val != -1) {
            ++streamPos;
        }
        return val;
    
public intread(byte[] b, int off, int len)

        checkClosed();
        bitOffset = 0;
        int nbytes = raf.read(b, off, len);
        if (nbytes != -1) {
            streamPos += nbytes;
        }
        return nbytes;
    
public voidseek(long pos)
Sets the current stream position and resets the bit offset to 0. It is legal to seeking past the end of the file; an EOFException will be thrown only if a read is performed. The file length will not be increased until a write is performed.

exception
IndexOutOfBoundsException if pos is smaller than the flushed position.
exception
IOException if any other I/O error occurs.

        checkClosed();
        if (pos < flushedPos) {
            throw new IndexOutOfBoundsException("pos < flushedPos!");
        }
        bitOffset = 0;
        raf.seek(pos);
        streamPos = raf.getFilePointer();
    
public voidwrite(int b)

        checkClosed();
        flushBits();
        raf.write(b);
        ++streamPos;
    
public voidwrite(byte[] b, int off, int len)

        checkClosed();
        flushBits();
        raf.write(b, off, len);
        streamPos += len;