Class ZipSplitReadOnlySeekableByteChannel
java.lang.Object
org.apache.commons.compress.utils.MultiReadOnlySeekableByteChannel
org.apache.commons.compress.archivers.zip.ZipSplitReadOnlySeekableByteChannel
- All Implemented Interfaces:
Closeable
,AutoCloseable
,ByteChannel
,Channel
,ReadableByteChannel
,SeekableByteChannel
,WritableByteChannel
MultiReadOnlySeekableByteChannel
that knows what a split ZIP archive should look like.
If you want to read a split archive using ZipFile
then create an instance of this class from the parts of the archive.
- Since:
- 1.20
-
Constructor Summary
ConstructorDescriptionConcatenates the given channels. -
Method Summary
Modifier and TypeMethodDescriptionstatic SeekableByteChannel
buildFromLastSplitSegment
(File lastSegmentFile) Concatenates ZIP split files from the last segment(the extension SHOULD be .zip)static SeekableByteChannel
buildFromLastSplitSegment
(Path lastSegmentPath) Concatenates ZIP split files from the last segment (the extension MUST be .zip)static SeekableByteChannel
Concatenates the given files.static SeekableByteChannel
Concatenates the given files.static SeekableByteChannel
forOrderedSeekableByteChannels
(SeekableByteChannel... channels) Concatenates the given channels.static SeekableByteChannel
forOrderedSeekableByteChannels
(SeekableByteChannel lastSegmentChannel, Iterable<SeekableByteChannel> channels) Concatenates the given channels.static SeekableByteChannel
Concatenates the given file paths.static SeekableByteChannel
Concatenates the given file paths.static SeekableByteChannel
forPaths
(List<Path> paths, OpenOption[] openOptions) Concatenates the given file paths.
-
Constructor Details
-
ZipSplitReadOnlySeekableByteChannel
Concatenates the given channels.The channels should be add in ascending order, e.g. z01, z02, ... z99, ZIP please note that the .zip file is the last segment and should be added as the last one in the channels
- Parameters:
channels
- the channels to concatenate- Throws:
NullPointerException
- if channels is nullIOException
- if the first channel doesn't seem to hold the beginning of a split archive
-
-
Method Details
-
buildFromLastSplitSegment
public static SeekableByteChannel buildFromLastSplitSegment(File lastSegmentFile) throws IOException Concatenates ZIP split files from the last segment(the extension SHOULD be .zip)- Parameters:
lastSegmentFile
- the last segment of ZIP split files, note that the extension SHOULD be .zip- Returns:
- SeekableByteChannel that concatenates all ZIP split files
- Throws:
IllegalArgumentException
- if the lastSegmentFile's extension is NOT .zipIOException
- if the first channel doesn't seem to hold the beginning of a split archive
-
buildFromLastSplitSegment
public static SeekableByteChannel buildFromLastSplitSegment(Path lastSegmentPath) throws IOException Concatenates ZIP split files from the last segment (the extension MUST be .zip)- Parameters:
lastSegmentPath
- the last segment of ZIP split files, note that the extension MUST be .zip- Returns:
- SeekableByteChannel that concatenates all ZIP split files
- Throws:
IllegalArgumentException
- if the lastSegmentPath's extension is NOT .zipIOException
- if the first channel doesn't seem to hold the beginning of a split archive- Since:
- 1.22
-
forFiles
Concatenates the given files.- Parameters:
files
- the files to concatenate, note that the LAST FILE of files should be the LAST SEGMENT(.zip) and these files should be added in correct order (e.g. .z01, .z02... .z99, .zip)- Returns:
- SeekableByteChannel that concatenates all provided files
- Throws:
NullPointerException
- if files is nullIOException
- if opening a channel for one of the files failsIOException
- if the first channel doesn't seem to hold the beginning of a split archive
-
forFiles
public static SeekableByteChannel forFiles(File lastSegmentFile, Iterable<File> files) throws IOException Concatenates the given files.- Parameters:
lastSegmentFile
- the last segment of split ZIP segments, its extension should be .zipfiles
- the files to concatenate except for the last segment, note these files should be added in correct order (e.g. .z01, .z02... .z99)- Returns:
- SeekableByteChannel that concatenates all provided files
- Throws:
IOException
- if the first channel doesn't seem to hold the beginning of a split archiveNullPointerException
- if files or lastSegmentFile is null
-
forOrderedSeekableByteChannels
public static SeekableByteChannel forOrderedSeekableByteChannels(SeekableByteChannel... channels) throws IOException Concatenates the given channels.- Parameters:
channels
- the channels to concatenate, note that the LAST CHANNEL of channels should be the LAST SEGMENT(.zip) and these channels should be added in correct order (e.g. .z01, .z02... .z99, .zip)- Returns:
- SeekableByteChannel that concatenates all provided channels
- Throws:
NullPointerException
- if channels is nullIOException
- if reading channels fails
-
forOrderedSeekableByteChannels
public static SeekableByteChannel forOrderedSeekableByteChannels(SeekableByteChannel lastSegmentChannel, Iterable<SeekableByteChannel> channels) throws IOException Concatenates the given channels.- Parameters:
lastSegmentChannel
- channel of the last segment of split ZIP segments, its extension should be .zipchannels
- the channels to concatenate except for the last segment, note these channels should be added in correct order (e.g. .z01, .z02... .z99)- Returns:
- SeekableByteChannel that concatenates all provided channels
- Throws:
NullPointerException
- if lastSegmentChannel or channels is nullIOException
- if the first channel doesn't seem to hold the beginning of a split archive
-
forPaths
public static SeekableByteChannel forPaths(List<Path> paths, OpenOption[] openOptions) throws IOException Concatenates the given file paths.- Parameters:
paths
- the file paths to concatenate, note that the LAST FILE of files should be the LAST SEGMENT(.zip) and these files should be added in correct order (e.g.: .z01, .z02... .z99, .zip)openOptions
- the options to open paths (shared by all paths).- Returns:
- SeekableByteChannel that concatenates all provided files
- Throws:
NullPointerException
- if files is nullIOException
- if opening a channel for one of the files failsIOException
- if the first channel doesn't seem to hold the beginning of a split archive- Since:
- 1.22
-
forPaths
Concatenates the given file paths.- Parameters:
paths
- the file paths to concatenate, note that the LAST FILE of files should be the LAST SEGMENT(.zip) and these files should be added in correct order (e.g.: .z01, .z02... .z99, .zip)- Returns:
- SeekableByteChannel that concatenates all provided files
- Throws:
NullPointerException
- if files is nullIOException
- if opening a channel for one of the files failsIOException
- if the first channel doesn't seem to hold the beginning of a split archive- Since:
- 1.22
-
forPaths
public static SeekableByteChannel forPaths(Path lastSegmentPath, Iterable<Path> paths) throws IOException Concatenates the given file paths.- Parameters:
lastSegmentPath
- the last segment path of split ZIP segments, its extension must be .zippaths
- the file paths to concatenate except for the last segment, note these files should be added in correct order (e.g.: .z01, .z02... .z99)- Returns:
- SeekableByteChannel that concatenates all provided files
- Throws:
IOException
- if the first channel doesn't seem to hold the beginning of a split archiveNullPointerException
- if files or lastSegmentPath is null- Since:
- 1.22
-