# Class SeekableFTPStream

java.lang.Object
java.io.InputStream
htsjdk.samtools.seekablestream.SeekableStream
htsjdk.samtools.seekablestream.SeekableFTPStream

All Implemented Interfaces:
  `Closeable, AutoCloseable`

public class SeekableFTPStream extends SeekableStream
Unfortunately the seekable stream classes exist for both Tribble and Picard, and we need both. This class is for use with Tribble and delegates all the work to a helper.

## Field Summary

### Fields inherited from class SeekableStream

`mark`

## Constructor Summary

Constructors
Constructor
Description
`SeekableFTPStream(URL url)`
`SeekableFTPStream(URL url, UserPasswordInput userPasswordInput)`

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
`boolean`
`eof()`
`String`
`getSource()`
`long`
`length()`
`static void`
`main(String[] args)`
`long`
`position()`
`int`
`read()`
`int`
`read(byte[] buffer, int offset, int len)`
`void`
`seek(long position)`
Seeks the stream to the provided position.
`long`
`skip(long n)`

### Methods inherited from class SeekableStream

`available, mark, markSupported, readFully, reset`

### Methods inherited from class InputStream

`nullInputStream, read, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### SeekableFTPStream

public SeekableFTPStream(URL url) throws IOException

Throws:
  `IOException`

### SeekableFTPStream

public SeekableFTPStream(URL url, UserPasswordInput userPasswordInput) throws IOException

Throws:
  `IOException`

## Method Details

### seek

public void seek(long position)
Description copied from class: `SeekableStream`
Seeks the stream to the provided position.

Specified by:
  `seek` in class `SeekableStream`

### position

public long position()

Specified by:
  `position` in class `SeekableStream`
Returns:
  the current byte position of the stream.

### eof

public boolean eof() throws IOException

Specified by:
  `eof` in class `SeekableStream`
Returns:
  `true` if the stream is already consumed; `false` otherwise.
Throws:
  `IOException`

### getSource

public String getSource()

Specified by:
  `getSource` in class `SeekableStream`
Returns:
  String representation of source (e.g. URL, file path, etc.), or null if not available.

### length

public long length()

Specified by:
  `length` in class `SeekableStream`
Returns:
  the length of the stream; 0 if not available or empty.

### skip

public long skip(long n) throws IOException

Overrides:
  `skip` in class `InputStream`
Throws:
  `IOException`

### read

public int read(byte[] buffer, int offset, int len) throws IOException

Specified by:
  `read` in class `SeekableStream`
Throws:
  `IOException`

### close

public void close() throws IOException

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in class `SeekableStream`
Throws:
  `IOException`

### read

public int read() throws IOException

Specified by:
  `read` in class `InputStream`
Throws:
  `IOException`

### main

public static void main(String[] args) throws IOException

Throws:
  `IOException`