# Class AsciiLineReaderIterator

java.lang.Object
htsjdk.tribble.readers.AsciiLineReaderIterator

All Implemented Interfaces:
  `LocationAware, LineIterator, Closeable, AutoCloseable, Iterator<String>`

public class AsciiLineReaderIterator extends Object implements LocationAware, LineIterator, Closeable
A class that iterates over the lines and line positions in an `AsciiLineReader`. This class is slower than other `LineIterator`s because it is driven by `AsciiLineReader`, but offers the benefit of implementing `LocationAware`, which is required for indexing. If you do not require `LocationAware`, consider using `LineIteratorImpl` as an alternative to this class. Note an important distinction in the way this class and its inner iterator differ: in the inner iterator, the position stored with a line is the position at the start of that line. However, `getPosition()` of the outer class must return the position at the end of the most-recently-returned line (or the start of the underlying `AsciiLineReader`, if no line has been read). The latter bit of logic here is required to conform with the interface described by `LocationAware.getPosition()`.

## Constructor Summary

Constructors
Constructor
Description
`AsciiLineReaderIterator(AsciiLineReader asciiLineReader)`

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
`long`
`getPosition()`
Returns the byte position at the end of the most-recently-read line (a.k.a., the beginning of the next line) from `next()` in the underlying `AsciiLineReader`.
`boolean`
`hasNext()`
`String`
`next()`
`String`
`peek()`
Peeks at the next line, without expending any elements in the underlying iterator.
`void`
`remove()`

### Methods inherited from class Object

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

### Methods inherited from interface Iterator

`forEachRemaining`

## Constructor Details

### AsciiLineReaderIterator

public AsciiLineReaderIterator(AsciiLineReader asciiLineReader)

## Method Details

### close

public void close() throws IOException

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

### hasNext

public boolean hasNext()

Specified by:
  `hasNext` in interface `Iterator<String>`

### next

public String next()

Specified by:
  `next` in interface `Iterator<String>`

### remove

public void remove()

Specified by:
  `remove` in interface `Iterator<String>`

### getPosition

public long getPosition()
Returns the byte position at the end of the most-recently-read line (a.k.a., the beginning of the next line) from `next()` in the underlying `AsciiLineReader`.

Specified by:
  `getPosition` in interface `LocationAware`

### peek

public String peek()
Description copied from interface: `LineIterator`
Peeks at the next line, without expending any elements in the underlying iterator.

Specified by:
  `peek` in interface `LineIterator`