Interface Definitions - Java
October 27, 2025About 3 min
Interface Definitions - Java
Write Interface
ITsFileWriter
Used to write data to tsfile
interface ITsFileWriter extends AutoCloseable {
  // Write data
  void write(Tablet tablet);
  
  // Close Write
  void close();
}TsFileWriterBuilder
Used to construct ITsFileWriter
class TsFileWriterBuilder {
  // Build ITsFileWriter object
  public ITsFileWriter build();
  
  // target file
  public TsFileWriterBuilder file(File file);
  
  // Used to construct table structures
  public TsFileWriterBuilder tableSchema(TableSchema schema);
  
  // Used to limit the memory size of objects
  public TsFileWriterBuilder memoryThreshold(long memoryThreshold);
}TableSchema
Describe the data structure of the table schema
class TableSchema {
  // Constructor function
  public TableSchema(String tableName, List<ColumnSchema> columnSchemaList);
}
class ColumnSchema {
  // Constructor function
  public ColumnSchema(String columnName, TSDataType dataType, ColumnCategory columnCategory);
  
  // Get column names
  public String getColumnName();
  
  // Get the data type of the column
  public TSDataType getDataType();
  
  // Get column category
  public Tablet.ColumnCategory getColumnCategory();
}
class ColumnSchemaBuilder {
  // Build ColumnSchema object
  public ColumnSchema build();
  
  // Column Name
  public ColumnSchemaBuilder name(String columnName);
  
  // The data type of the column
  public ColumnSchemaBuilder dataType(TSDataType columnType);
  
  // Column category
  public ColumnSchemaBuilder category(ColumnCategory columnCategory);
  
  // Supported types
  enum TSDataType {    
    BOOLEAN,    
    INT32,
    INT64,    
    FLOAT,    
    DOUBLE,    
    TIMESTAMP,   
    TEXT,    
    DATE,    
    BLOB,   
    STRING;  
  }
  
  // Supported column categories
  enum ColumnCategory {    
    TAG,   
    FIELD 
  }
}Tablet
Write column memory structure
class Tablet {
  // Constructor function
  public Tablet(List<String> columnNameList, List<TSDataType> dataTypeList);
  public Tablet(List<String> columnNameList, List<TSDataType> dataTypeList, int maxRowNum);
  
  // Interface for adding timestamps
  void addTimestamp(int rowIndex, long timestamp);
  
  // Interface for adding values
  // Add values based on column names
  void addValue(int rowIndex, String columnName, int val);
  void addValue(int rowIndex, String columnName, long val);  
  void addValue(int rowIndex, String columnName, float val);  
  void addValue(int rowIndex, String columnName, double val);  
  void addValue(int rowIndex, String columnName, boolean val);  
  void addValue(int rowIndex, String columnName, String val);
  void addValue(int rowIndex, String columnName, byte[] val); 
  void addValue(int rowIndex, String columnName, LocalDate val); 
  // Add values based on index position
  void addValue(int rowIndex, int columnIndex, int val);
  void addValue(int rowIndex, int columnIndex, long val);  
  void addValue(int rowIndex, int columnIndex, float val);  
  void addValue(int rowIndex, int columnIndex, double val);  
  void addValue(int rowIndex, int columnIndex, boolean val); 
  void addValue(int rowIndex, int columnIndex, String val);
  void addValue(int rowIndex, int columnIndex, byte[] val); 
  void addValue(int rowIndex, int columnIndex, LocalDate val);
}Read Interface
ITsFileReader
Used to query data in tsfile
interface ITsFileReader extends AutoCloseable {
  // Used to execute queries and return results
  ResultSet query(String tableName, List<String> columnNames, long startTime, long endTime);
  
  // Return the schema of the table named tableName in tsfile
  Optional<TableSchema> getTableSchemas(String tableName);
  
  // Retrieve schema information for all tables in the tsfile
  List<TableSchema> getAllTableSchema();
  
  // Close query
  void close();
}TsFileReaderBuilder
Used to construct ITsFileReader
class TsFileReaderBuilder {
  // Build ITsFileReader object
  public ITsFileReader build();
  
  // target file
  public TsFileReaderBuilder file(File file);
}ResultSet
The result set of the query
interface ResultSet extends AutoCloseable {  
  // Move the cursor to the next row and return whether there is still data
  boolean next();  
    
  // Get the value of the current row and a certain column
  int getInt(String columnName);  
  int getInt(int columnIndex);  
  long getLong(String columnName);  
  long getLong(int columnIndex);
  float getFloat(String columnName);
  float getFloat(int columnIndex); 
  double getDouble(String columnName);
  double getDouble(int columnIndex); 
  boolean getBoolean(String columnName);
  boolean getBoolean(int columnIndex);
  String getString(String columnName);
  String getString(int columnIndex);
  LocalDate getDate(String columnName);
  LocalDate getDate(int columnIndex); 
  byte[] getBinary(String columnName);
  byte[] getBinary(int columnIndex);
     
  // Determine whether a column is NULL in the current row
  boolean isNull(String columnName);  
  boolean isNull(int columnIndex);  
    
  // Close the current result set
  void close();
    
  // Obtain the header of the result set
  ResultSetMetadata getMetadata();
}ResultSetMetadata
Used to obtain metadata for the result set
interface ResultSetMetadata {  
  // Obtain the column name of the Nth column in the result set
  String getColumnName(int columnIndex);
  
  // Obtain the data type of the Nth column in the result set
  TSDataType getColumnType(int columnIndex);
}