de.schlichtherle.truezip.file
Class TFileInputStream
java.lang.Object
java.io.InputStream
de.schlichtherle.truezip.io.DecoratingInputStream
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
|
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. |
DEFAULT_OPTIONS
private static final BitField<FsInputOption> DEFAULT_OPTIONS
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.
newInputStream
private static InputStream newInputStream(File src)
throws FileNotFoundException
- Throws:
FileNotFoundException
Copyright © 2005-2011 Schlichtherle IT Services. All Rights Reserved.