Package org.apache.commons.io.input
Class BufferedFileChannelInputStream
java.lang.Object
java.io.InputStream
org.apache.commons.io.input.BufferedFileChannelInputStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
InputStream
implementation which uses direct buffer to read a file to avoid extra copy of data between Java
and native memory which happens when using BufferedInputStream
. Unfortunately, this is not something
already available in JDK, sun.nio.ch.ChannelInputStream
supports reading a file using NIO, but does not
support buffering.
This class was ported and adapted from Apache Spark commit 933dc6cb7b3de1d8ccaf73d124d6eb95b947ed19 where it was
called NioBufferedFileInputStream
.
- Since:
- 2.9.0
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new instance for the given File.BufferedFileChannelInputStream
(File file, int bufferSizeInBytes) Constructs a new instance for the given File and buffer size.Constructs a new instance for the given Path.BufferedFileChannelInputStream
(Path path, int bufferSizeInBytes) Constructs a new instance for the given Path and buffer size. -
Method Summary
Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skipNBytes, transferTo
-
Constructor Details
-
BufferedFileChannelInputStream
Constructs a new instance for the given File.- Parameters:
file
- The file to stream.- Throws:
IOException
- If an I/O error occurs
-
BufferedFileChannelInputStream
Constructs a new instance for the given File and buffer size.- Parameters:
file
- The file to stream.bufferSizeInBytes
- buffer size.- Throws:
IOException
- If an I/O error occurs
-
BufferedFileChannelInputStream
Constructs a new instance for the given Path.- Parameters:
path
- The path to stream.- Throws:
IOException
- If an I/O error occurs
-
BufferedFileChannelInputStream
Constructs a new instance for the given Path and buffer size.- Parameters:
path
- The path to stream.bufferSizeInBytes
- buffer size.- Throws:
IOException
- If an I/O error occurs
-
-
Method Details
-
available
- Overrides:
available
in classInputStream
- Throws:
IOException
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classInputStream
- Throws:
IOException
-
read
- Specified by:
read
in classInputStream
- Throws:
IOException
-
read
- Overrides:
read
in classInputStream
- Throws:
IOException
-
skip
- Overrides:
skip
in classInputStream
- Throws:
IOException
-