Class FileDataSource

java.lang.Object
uk.ac.starlink.util.DataSource
uk.ac.starlink.util.FileDataSource
Direct Known Subclasses:
TemporaryFileDataSource

public class FileDataSource extends DataSource
A DataSource implementation based on a File.
Author:
Mark Taylor (Starlink)
  • Constructor Details

    • FileDataSource

      public FileDataSource(File file, String position) throws IOException
      Creates a new FileDataSource from a File object and a position string.
      Parameters:
      file - the file
      position - the source's position attribute (indicates the relevant part of the file)
      Throws:
      IOException - if file does not exist, cannot be read, or is a directory
    • FileDataSource

      public FileDataSource(File file) throws IOException
      Creates a new FileDataSource from a File object.
      Parameters:
      file - the file
      Throws:
      IOException - if file does not exist, cannot be read, or is a directory
    • FileDataSource

      public FileDataSource(String filename) throws IOException
      Creates a new FileDataSource from a filename.
      Parameters:
      filename - filename
      Throws:
      IOException - if filename does not name a readable file
  • Method Details

    • getRawInputStream

      protected InputStream getRawInputStream() throws IOException
      Description copied from class: DataSource
      Provides a new InputStream for this data source. This method should be implemented by subclasses to provide a new InputStream giving the raw content of the source each time it is called. The general contract of this method is that each time it is called it will return a stream with the same content.
      Specified by:
      getRawInputStream in class DataSource
      Returns:
      an InputStream containing the data of this source
      Throws:
      IOException
    • getRawLength

      public long getRawLength()
      Returns the length of this file. return file length
      Overrides:
      getRawLength in class DataSource
      Returns:
      the length of the raw input stream, or -1
    • getFile

      public File getFile()
      Returns the File object on which this FileDataSource is based.
      Returns:
      the file
    • getURL

      public URL getURL()
      Description copied from class: DataSource
      Returns a URL which corresponds to this data source, if one exists. An URL.openConnection() method call on the URL returned by this method should provide a stream with the same content as the DataSource.getRawInputStream() method of this data source. If no such URL exists or is known, then null should be returned.

      If this source has a non-null position value, it will be appended to the main part of the URL after a '#' character (as the URL's ref part).

      Overrides:
      getURL in class DataSource
      Returns:
      a URL corresponding to this source, or null