Package net.sf.basedb.util.bfs
Class DataWriter
java.lang.Object
java.io.Writer
java.io.PrintWriter
net.sf.basedb.util.export.TableWriter
net.sf.basedb.util.bfs.DataWriter
- All Implemented Interfaces:
Closeable
,Flushable
,Appendable
,AutoCloseable
Writer implementation for writing BFS data files. A data file is
a matrix of data. Columns are separated by tabs. Values are escaped
using the regular rules (
TabCrLfEncoderDecoder
). All
rows must have an equal number of columns. The number of columns is
defined by the first call to bfsPrintData(Object...)
or by calling setColumnCount(int)
.- Version:
- 2.15
- Author:
- Nicklas
- Last modified
- $Date: 2019-05-21 13:37:09 +0200 (tis, 21 maj 2019) $
-
Field Summary
Fields inherited from class java.io.PrintWriter
out
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
bfsPrintData
(Object... data) Print a data line.static DataWriter
Utility method for creating a data writer to a file in the native file system.static DataWriter
create
(OutputStream out, String filename) Utility method for creating a data writer when you have an output stream.static DataWriter
Utility method for creating a data writer to a file in the BASE file system.int
Get the number of data columns.Get the file name that this writer is printing to.boolean
Checks if the number of columns has been locked or not.void
setColumnCount
(int columns) Set the number of data columns.void
setFilename
(String filename) Set the file name that this writer is printing to.Methods inherited from class net.sf.basedb.util.export.TableWriter
getColumnFormatter, getDataSeparator, getEncoder, getNullValue, setColumnFormatter, setDataSeparator, setEncoder, setNullValue, tableEncode, tablePrintData, tablePrintData, tablePrintData, tablePrintHeaders
Methods inherited from class java.io.PrintWriter
append, append, append, checkError, clearError, close, flush, format, format, print, print, print, print, print, print, print, print, print, printf, printf, println, println, println, println, println, println, println, println, println, println, setError, write, write, write, write, write
Methods inherited from class java.io.Writer
nullWriter
-
Field Details
-
filename
-
lockedColumns
private boolean lockedColumns -
columnCount
private int columnCount
-
-
Constructor Details
-
DataWriter
Create a new BFS data writer.- Parameters:
out
- The parent writer which this writer will print to
-
-
Method Details
-
create
Utility method for creating a data writer when you have an output stream.- Parameters:
out
- The output stream the writer should print tofilename
- Optional, the name of the file the output stream is printing to
-
create
Utility method for creating a data writer to a file in the BASE file system. The character set and MIME type on the file are automatically updated.- Parameters:
file
- The file in the BASE file system
-
create
Utility method for creating a data writer to a file in the native file system. If the file doesn't exists, it is created.- Parameters:
file
- The file in the native file system- Throws:
IOException
-
getFilename
Get the file name that this writer is printing to.- Returns:
- The file name or null if not known
-
setFilename
Set the file name that this writer is printing to. -
getColumnCount
public int getColumnCount()Get the number of data columns. This information is only available after the first line of data has been printed or if a specific number of columns has been set.- Returns:
- The number of columns, or -1 if this information is not yet known
-
setColumnCount
public void setColumnCount(int columns) Set the number of data columns. This can only be changed as long as no data has been written to the stream.- Parameters:
columns
- The number of data columns, if 0 or negative the first call tobfsPrintData(Object...)
determines the number of columns
-
isLockedColumns
public boolean isLockedColumns()Checks if the number of columns has been locked or not. The number of required columns are locked the first time a call tobfsPrintData(Object...)
is made. -
bfsPrintData
Print a data line. The number of columns must be the same for all calls to this method. Normally, the first call determines the required number of columns, but this can also be set withsetColumnCount(int)
.- Parameters:
data
- The data to print- Throws:
IllegalStateException
- If headers has not been printedIllegalArgumentException
- If the data array doesn't match the required number of columnsNullPointerException
- If the data array is null
-