public class TSV2CCF
extends java.lang.Object
implements edu.sysu.pmglab.easytools.Parallelizable
限定符和类型 | 方法和说明 |
---|---|
TSV2CCF |
addField(java.lang.String fieldName,
FieldType fieldType)
添加 CCF 文件的列名及其类型
|
TSV2CCF |
addFields(java.util.Map<java.lang.String,FieldType> fields)
添加 CCF 文件的列名及其类型
|
TSV2CCF |
addMeta(edu.sysu.pmglab.container.ByteCode key,
edu.sysu.pmglab.container.ByteCode value)
从外部直接注入注释字段
|
TSV2CCF |
addMeta(CCFMeta meta)
从外部直接注入注释字段
|
TSV2CCF |
addMeta(java.lang.String key,
java.lang.String value)
从外部直接注入注释字段
|
TSV2CCF |
addMetaLineListener(java.util.function.Consumer<edu.sysu.pmglab.container.VolumeByteStream> listener)
设置注释行数据监听器
通常用于监听注释数据, 并使用 addMeta 进行数据注入
|
TSV2CCF |
addRecordFilter(java.util.function.Function<IRecord,java.lang.Boolean> filter)
按照 CCF 记录进行过滤, 它在一条记录读取结束后执行过滤
|
TSV2CCF |
addRecordListener(java.util.function.Consumer<IRecord> recordListener)
记录映射器
在数据填充进 IRecord 之后, 根据更复杂的列元之间的相互规则重新赋予数据
|
TSV2CCF |
addTSVFilter(java.util.function.Function<java.util.Map<java.lang.String,edu.sysu.pmglab.container.ByteCode>,java.lang.Boolean> tsvFilter)
按照 TSV 记录进行过滤, 它在一条记录读取之前执行过滤
|
TSV2CCF |
addValueConverter(java.util.function.BiConsumer<java.util.Map<java.lang.String,edu.sysu.pmglab.container.ByteCode>,IRecord> function)
添加字段转换器
|
CCFTable |
convert()
文件转换
|
edu.sysu.pmglab.container.File |
getOutputFile()
获取输出文件对象
|
int |
getThreads() |
static TSV2CCF |
of(java.io.File inputFile)
构造器方法
|
static TSV2CCF |
of(java.io.File inputFile,
java.io.File outputFile)
构造器方法
|
static TSV2CCF |
of(java.lang.String inputFileName)
构造器方法
|
static TSV2CCF |
of(java.lang.String inputFileName,
java.io.File outputFile)
构造器方法
|
TSV2CCF |
renameField(java.lang.String oldFieldName,
java.lang.String newFieldName)
重命名字段
|
TSV2CCF |
renameFields(java.util.Map<java.lang.String,java.lang.String> renameFields)
重命名字段
|
TSV2CCF |
setAutoMeta(boolean autoMeta)
自动识别数据段模式. ## 识别为注释行, # 识别为标题行
|
TSV2CCF |
setCCFFormat(CCFFormat ccfFormat)
设置 CCF文件 格式
|
TSV2CCF |
setElementSep(byte elementSep)
设置不同列的元素分隔符
|
TSV2CCF |
setHeader(boolean noHeaderLine,
int skipLineNums,
java.lang.String validTsvStartsWith)
设置标题行的识别方式
首先通过 skipLineNums 跳过指定个数的行;
接着寻找满足 validTsvStartsWith 的行, 该行将被识别为标题行;
如果设置了 noHeaderLine, 则 inputHeaderStartsWith 被识别为数据行
|
TSV2CCF |
setThreads(int nThreads) |
TSV2CCF |
storeOriginMeta(boolean storeOriginMeta)
是否储存文件自带的 meta 信息
|
TSV2CCF |
throwExceptionWhenParsingFailed(boolean throwExceptionWhenParsingFailed)
当一行解析错误时抛出异常
true 时一行错误则程序结束,false 则跳过错误的行
|
java.lang.String |
toString() |
public static TSV2CCF of(java.lang.String inputFileName) throws java.io.IOException
inputFileName
- 输入文件名java.io.IOException
- 输入文件不存在时抛出 IO 异常public static TSV2CCF of(java.io.File inputFile) throws java.io.IOException
inputFile
- 输入文件对象java.io.IOException
- 输入文件不存在时抛出 IO 异常public static TSV2CCF of(java.lang.String inputFileName, java.io.File outputFile) throws java.io.IOException
inputFileName
- 输入文件名outputFile
- 输出文件对象java.io.IOException
- 输入文件不存在时抛出 IO 异常public static TSV2CCF of(java.io.File inputFile, java.io.File outputFile) throws java.io.IOException
inputFile
- 输入文件对象outputFile
- 输出文件对象java.io.IOException
- 输入文件不存在时抛出 IO 异常public TSV2CCF addField(java.lang.String fieldName, FieldType fieldType)
fieldName
- 列名fieldType
- 列类型public TSV2CCF addFields(java.util.Map<java.lang.String,FieldType> fields)
fields
- 列名及其类型public TSV2CCF addMeta(java.lang.String key, java.lang.String value)
key
- 注释键value
- 注释值public TSV2CCF addMeta(edu.sysu.pmglab.container.ByteCode key, edu.sysu.pmglab.container.ByteCode value)
key
- 注释键value
- 注释值public TSV2CCF setAutoMeta(boolean autoMeta)
autoMeta
- 自动设置注释字段public TSV2CCF storeOriginMeta(boolean storeOriginMeta)
storeOriginMeta
- 储存 meta 信息public TSV2CCF addMetaLineListener(java.util.function.Consumer<edu.sysu.pmglab.container.VolumeByteStream> listener)
listener
- 注释行数据转换器public TSV2CCF addValueConverter(java.util.function.BiConsumer<java.util.Map<java.lang.String,edu.sysu.pmglab.container.ByteCode>,IRecord> function)
function
- 字段转换函数, Entry 的 key 对应该字段的值, Record 则是当前行的记录细节public TSV2CCF renameField(java.lang.String oldFieldName, java.lang.String newFieldName)
oldFieldName
- 旧字段名newFieldName
- 新字段名public TSV2CCF renameFields(java.util.Map<java.lang.String,java.lang.String> renameFields)
renameFields
- 重命名字段信息public TSV2CCF setCCFFormat(CCFFormat ccfFormat)
ccfFormat
- 设置 CCF 文件格式, 包含块大小、压缩级别、并行线程数 3 个参数public TSV2CCF addRecordFilter(java.util.function.Function<IRecord,java.lang.Boolean> filter)
filter
- 记录过滤器public TSV2CCF addTSVFilter(java.util.function.Function<java.util.Map<java.lang.String,edu.sysu.pmglab.container.ByteCode>,java.lang.Boolean> tsvFilter)
tsvFilter
- TSV 字段过滤器public TSV2CCF setHeader(boolean noHeaderLine, int skipLineNums, java.lang.String validTsvStartsWith)
noHeaderLine
- 无标题行模式skipLineNums
- 跳过的行数validTsvStartsWith
- 标题行以指定的字段作为开始public TSV2CCF setElementSep(byte elementSep)
elementSep
- 元素分隔符public TSV2CCF addRecordListener(java.util.function.Consumer<IRecord> recordListener)
recordListener
- 记录映射器public TSV2CCF setThreads(int nThreads)
setThreads
在接口中 edu.sysu.pmglab.easytools.Parallelizable
public TSV2CCF throwExceptionWhenParsingFailed(boolean throwExceptionWhenParsingFailed)
throwExceptionWhenParsingFailed
- 当一行解析错误时抛出异常public int getThreads()
getThreads
在接口中 edu.sysu.pmglab.easytools.Parallelizable
public edu.sysu.pmglab.container.File getOutputFile()
public CCFTable convert() throws java.io.IOException
java.io.IOException
- 文件读取过程中产生的 IO 异常 (包括占用、指针异常、不存在等)public java.lang.String toString()
toString
在类中 java.lang.Object