TrueZIP File* 7.0

de.schlichtherle.truezip.file
Class TFileInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by de.schlichtherle.truezip.io.DecoratingInputStream
          extended by de.schlichtherle.truezip.file.TFileInputStream
All Implemented Interfaces:
Closeable

@DefaultAnnotation(value=edu.umd.cs.findbugs.annotations.NonNull.class)
@Immutable
public final class TFileInputStream
extends DecoratingInputStream

A replacement for the class FileInputStream for reading plain old files or entries in an archive file. Note that applications cannot read archive files directly using this class - just their entries.

To prevent exceptions to be thrown subsequently, applications should always close their streams using the following idiom:

TFileInputStream in = new TFileInputStream(file);
 try {
     // Do I/O here...
 } finally {
     in.close(); // ALWAYS close the stream!
 }
 

Note that the DecoratingInputStream.close() method may throw an IOException, too. Applications need to deal with this appropriately, for example by enclosing the entire block with another try-catch-block:

try {
     TFileInputStream in = new TFileInputStream(file);
     try {
         // Do I/O here...
     } finally {
         in.close(); // ALWAYS close the stream!
     }
 } catch (IOException ex) {
     ex.printStackTrace();
 }
 

Applications cannot read from an entry in an archive file if an implicit unmount is required but cannot get performed because another TFileInputStream or TFileOutputStream object hasn't been closed or garbage collected yet. A FileNotFoundException is thrown by the constructors of this class in this case.

If you would like to use this class in order to cp files, please consider using one of the cp methods of the class TFile instead. These methods provide ease of use, enhanced features, superior performance and require less space in the temp file folder.

Author:
Christian Schlichtherle
See Also:
TFile.cat(InputStream, OutputStream), TFileOutputStream

Field Summary
private static BitField<FsInputOption> DEFAULT_OPTIONS
           
 
Fields inherited from class de.schlichtherle.truezip.io.DecoratingInputStream
delegate
 
Constructor Summary
TFileInputStream(File file)
          Constructs a new input stream for reading plain old files or entries in an archive file.
TFileInputStream(String path)
          Constructs a new input stream for reading plain old files or entries in an archive file.
 
Method Summary
private static InputStream newInputStream(File src)
           
 
Methods inherited from class de.schlichtherle.truezip.io.DecoratingInputStream
available, close, mark, markSupported, read, read, read, reset, skip, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_OPTIONS

private static final BitField<FsInputOption> DEFAULT_OPTIONS
Constructor Detail

TFileInputStream

public TFileInputStream(String path)
                 throws FileNotFoundException
Constructs a new input stream for reading plain old files or entries in an archive file. This constructor calls new TFile(path) for the given path.

Parameters:
path - the path of the plain old file or entry in an archive file to read.
Throws:
FileBusyException - If the path denotes an archive entry and the archive driver does not support to create an additional input stream for the archive file.
FileNotFoundException - On any other I/O related issue.

TFileInputStream

public TFileInputStream(File file)
                 throws FileNotFoundException
Constructs a new input stream for reading plain old files or entries in an archive file.

Parameters:
file - the plain old file or entry in an archive file to read.
Throws:
FileBusyException - If the path denotes an archive entry and the archive driver does not support to create an additional input stream for the archive file.
FileNotFoundException - On any other I/O related issue.
Method Detail

newInputStream

private static InputStream newInputStream(File src)
                                   throws FileNotFoundException
Throws:
FileNotFoundException

TrueZIP File* 7.0

Copyright © 2005-2011 Schlichtherle IT Services. All Rights Reserved.