java.lang.Object
org.eclipse.rdf4j.sail.nativerdf.datastore.DataFile
All Implemented Interfaces:
Closeable, AutoCloseable

public class DataFile extends Object implements Closeable
Class supplying access to a data file. A data file stores data sequentially. Each entry starts with the entry's length (4 bytes), followed by the data itself. File offsets are used to identify entries.
Author:
Arjohn Kampman
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    class 
    An iterator that iterates over the data that is stored in a data file.
  • Constructor Summary

    Constructors
    Constructor
    Description
    DataFile(File file)
     
    DataFile(File file, boolean forceSync)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Discards all stored data.
    void
    Closes the data file, releasing any file locks that it might have.
    byte[]
    getData(long offset)
    Gets the data that is stored at the specified offset.
     
    Gets an iterator that can be used to iterate over all stored data.
    long
    storeData(byte[] data)
    Stores the specified data and returns the byte-offset at which it has been stored.
    void
    Syncs any unstored data to the hash file.
    void
    sync(boolean force)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • getFile

      public File getFile()
    • storeData

      public long storeData(byte[] data) throws IOException
      Stores the specified data and returns the byte-offset at which it has been stored.
      Parameters:
      data - The data to store, must not be null.
      Returns:
      The byte-offset in the file at which the data was stored.
      Throws:
      IOException
    • getData

      public byte[] getData(long offset) throws IOException
      Gets the data that is stored at the specified offset.
      Parameters:
      offset - An offset in the data file, must be larger than 0.
      Returns:
      The data that was found on the specified offset.
      Throws:
      IOException - If an I/O error occurred.
    • clear

      public void clear() throws IOException
      Discards all stored data.
      Throws:
      IOException - If an I/O error occurred.
    • sync

      public void sync() throws IOException
      Syncs any unstored data to the hash file.
      Throws:
      IOException
    • sync

      public void sync(boolean force) throws IOException
      Throws:
      IOException
    • close

      public void close() throws IOException
      Closes the data file, releasing any file locks that it might have.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException
    • iterator

      public DataFile.DataIterator iterator()
      Gets an iterator that can be used to iterate over all stored data.
      Returns:
      a DataIterator.