|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectit.unipi.di.textdb.TextDB
it.unipi.di.textdb.ZipCursor
public class ZipCursor
A forward only cursor over a Zip compressed file. The implementation is based on
the JCraft library, a 100% pure Java implementation of ZLib (see the JCraft home page).
GZip format is also supported but, in this case, the compression and access is made using the standard
java.util.zip package.
NOTE: The JCraft library doesn't support the GZip format instead.
Field Summary | |
---|---|
protected int |
currentPos
|
protected it.unimi.dsi.mg4j.util.MutableString |
currentRec
|
protected it.unimi.dsi.mg4j.io.FastBufferedReader |
cursor
|
protected boolean |
isOpen
|
protected boolean |
isZip
|
Fields inherited from class it.unipi.di.textdb.TextDB |
---|
DEFAULT_FIELD_SEPARATOR, fieldSeparator, filename |
Constructor Summary | |
---|---|
ZipCursor(String filename)
Creates an instance of a ZipFileCursor over a zipped (or gzipped) compressed file. |
Method Summary | |
---|---|
TextDB |
build(String outfile,
PrintStream log)
Create a TextDB compressing the input file with Zip. |
static TextDB |
build(String filename,
String outfile,
boolean useGZip)
Create a TextDB compressing the input file with Zip or optionally with GZip. |
void |
close()
Closes the TextDB and releases all of its resources. |
String |
get(int record)
Returns the String in position pos for this compressed TextDB. |
int |
getCurrentPos()
Returns the current record position. |
String |
getCurrentValue()
Returns the content of the current record. |
String[] |
getRange(int i,
int j)
Returns the records having positions from i to j in the TextDB. |
void |
getRange(int i,
int j,
int field,
BufferedWriter out)
Print on the passed PrintStream the specified field for the records in the range [i,j]. |
String[] |
getSequential(int[] records)
Given a sorted array of record positions, this method returns all of them. |
void |
getSequential(int[] records,
int field,
BufferedWriter out)
Given a sorted array of record positions and the position of a field, this method retrieves the specified field from those records. |
String[] |
getSequential(int[] records,
int pos,
int length)
Given an array of record positions containing a sorted subrange defined by the parameters pos and length ,
this method returns the records for such positions. |
static void |
main(String[] args)
|
String |
next()
Moves the cursor on the next record and returns it. |
String |
next(int pos)
Moves the cursor on a specified record and returns it. |
void |
open()
Opens the TextDB. |
int |
size()
Returns the number of records contained in this TextDB. |
protected void |
skip(int pos)
Forwards this cursor to the record at position pos, which must be positive and greater than or equal to the previous one. |
Methods inherited from class it.unipi.di.textdb.TextDB |
---|
build, fromTDBFile, get, getField, getFieldValues, getName, getRange, getRecordFields, getSequential, setFieldSeparator |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected it.unimi.dsi.mg4j.io.FastBufferedReader cursor
protected int currentPos
protected it.unimi.dsi.mg4j.util.MutableString currentRec
protected boolean isOpen
protected boolean isZip
Constructor Detail |
---|
public ZipCursor(String filename)
filename
- the TDB file containing the compressed fileMethod Detail |
---|
public void open() throws IOException
TextDB
open
in class TextDB
IOException
public String next() throws IOException
IOException
public String next(int pos) throws IOException
pos
- the position of the record where to move this cursor
IOException
protected void skip(int pos) throws IOException
pos
- the new (positive) position for this cursor
IOException
public int getCurrentPos()
public String getCurrentValue()
public void close() throws IOException
TextDB
close
in class TextDB
IOException
public String get(int record) throws IOException
get
in class TextDB
record
- a position in the range [0, N-1]
IOException
public int size()
TextDB
size
in class TextDB
public String[] getRange(int i, int j) throws IOException
TextDB
getRange
in class TextDB
i
- the starting position of the records to retrieve (inclusive)j
- the ending position of the records to retrieve (inclusive)
IOException
public void getRange(int i, int j, int field, BufferedWriter out) throws IOException
TextDB
PrintStream
the specified field for the records in the range [i,j].
If not present, an empty line will be dumped out.
getRange
in class TextDB
i
- the starting position of the records to be fetched (included)j
- the ending position of the records to be fetched (included)field
- the position (counting from 0) of the field to return for all the records in range, or -1 to retrieve the entire recordout
- the output BufferedWriter
IOException
public String[] getSequential(int[] records) throws IOException
TextDB
getSequential
in class TextDB
records
- a sorted array of record positions
IOException
public String[] getSequential(int[] records, int pos, int length) throws IOException
TextDB
pos
and length
,
this method returns the records for such positions.
records[pos]
(included) to records[pos+length]
(exluded).
getSequential
in class TextDB
records
- array with a sorted subrange of records positionspos
- the starting position of the subrangelength
- the length of the subrange
IOException
public void getSequential(int[] records, int field, BufferedWriter out) throws IOException
TextDB
TextDB.getField(String, int)
provided by
this abstract class that selects a field of a record through a sequential access
to the record itself. The use of a more efficient implementation of this function
is encouraged.
getSequential
in class TextDB
records
- a sorted array of record positionsfield
- the position of the field to extract, or -1 to dump all fieldsout
- the output BufferedWriter
IOException
public static TextDB build(String filename, String outfile, boolean useGZip) throws IOException
filename
- the file to compressoutfile
- the output file nameuseGZip
- if true compress with gzip instead of zip
IOException
public TextDB build(String outfile, PrintStream log) throws IOException
build
in class TextDB
log
- this parameter is not usedoutfile
- the output file name
IOException
public static void main(String[] args) throws Exception
Exception
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |