Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Inherited Fields](https://developer.android.com/reference/java/io/LineNumberReader#inhfields) \| [Ctors](https://developer.android.com/reference/java/io/LineNumberReader#pubctors) \| [Methods](https://developer.android.com/reference/java/io/LineNumberReader#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/io/LineNumberReader#inhmethods)

# LineNumberReader


`
public


class
LineNumberReader
`


`


`

`


`

`

extends https://developer.android.com/reference/java/io/BufferedReader


`

`


`

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||||
| ↳ | [java.io.Reader](https://developer.android.com/reference/java/io/Reader) |||
|   | ↳ | [java.io.BufferedReader](https://developer.android.com/reference/java/io/BufferedReader) ||
|   |   | ↳ | java.io.LineNumberReader |

<br />

*** ** * ** ***

A buffered character-input stream that keeps track of line numbers. This
class defines methods `https://developer.android.com/reference/java/io/LineNumberReader#setLineNumber(int)` and `https://developer.android.com/reference/java/io/LineNumberReader#getLineNumber()` for setting and getting the current line number
respectively.

By default, line numbering begins at 0. This number increments at every
[line terminator](https://developer.android.com/reference/java/io/LineNumberReader#lt) as the data is read, and can be changed
with a call to `setLineNumber(int)`. Note however, that
`setLineNumber(int)` does not actually change the current position in
the stream; it only changes the value that will be returned by
`getLineNumber()`.

A line is considered to be terminated by any one of a
line feed ('\\n'), a carriage return ('\\r'), or a carriage return followed
immediately by a linefeed.

## Summary

| ### Inherited fields |
|---|
| From class `https://developer.android.com/reference/java/io/Reader` |---|---| | ` protected https://developer.android.com/reference/java/lang/Object` | `https://developer.android.com/reference/java/io/Reader#lock` The object used to synchronize operations on this stream. | |

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/io/LineNumberReader#LineNumberReader(java.io.Reader)(https://developer.android.com/reference/java/io/Reader in) ` Create a new line-numbering reader, using the default input-buffer size. |
| ` https://developer.android.com/reference/java/io/LineNumberReader#LineNumberReader(java.io.Reader,%20int)(https://developer.android.com/reference/java/io/Reader in, int sz) ` Create a new line-numbering reader, reading characters into a buffer of the given size. |

| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/java/io/LineNumberReader#getLineNumber()() ` Get the current line number. |
| ` void` | ` https://developer.android.com/reference/java/io/LineNumberReader#mark(int)(int readAheadLimit) ` Mark the present position in the stream. |
| ` int` | ` https://developer.android.com/reference/java/io/LineNumberReader#read()() ` Read a single character. |
| ` int` | ` https://developer.android.com/reference/java/io/LineNumberReader#read(char[],%20int,%20int)(char[] cbuf, int off, int len) ` Read characters into a portion of an array. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/io/LineNumberReader#readLine()() ` Read a line of text. |
| ` void` | ` https://developer.android.com/reference/java/io/LineNumberReader#reset()() ` Reset the stream to the most recent mark. |
| ` void` | ` https://developer.android.com/reference/java/io/LineNumberReader#setLineNumber(int)(int lineNumber) ` Set the current line number. |
| ` long` | ` https://developer.android.com/reference/java/io/LineNumberReader#skip(long)(long n) ` Skip characters. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/io/BufferedReader ` |---|---| | ` void` | ` https://developer.android.com/reference/java/io/BufferedReader#close()() ` Closes the stream and releases any system resources associated with it. | | ` https://developer.android.com/reference/java/util/stream/Stream<https://developer.android.com/reference/java/lang/String>` | ` https://developer.android.com/reference/java/io/BufferedReader#lines()() ` Returns a `Stream`, the elements of which are lines read from this `BufferedReader`. | | ` void` | ` https://developer.android.com/reference/java/io/BufferedReader#mark(int)(int readAheadLimit) ` Marks the present position in the stream. | | ` boolean` | ` https://developer.android.com/reference/java/io/BufferedReader#markSupported()() ` Tells whether this stream supports the mark() operation, which it does. | | ` int` | ` https://developer.android.com/reference/java/io/BufferedReader#read()() ` Reads a single character. | | ` int` | ` https://developer.android.com/reference/java/io/BufferedReader#read(char[],%20int,%20int)(char[] cbuf, int off, int len) ` Reads characters into a portion of an array. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/io/BufferedReader#readLine()() ` Reads a line of text. | | ` boolean` | ` https://developer.android.com/reference/java/io/BufferedReader#ready()() ` Tells whether this stream is ready to be read. | | ` void` | ` https://developer.android.com/reference/java/io/BufferedReader#reset()() ` Resets the stream to the most recent mark. | | ` long` | ` https://developer.android.com/reference/java/io/BufferedReader#skip(long)(long n) ` Skips characters. | ||
| From class ` https://developer.android.com/reference/java/io/Reader ` |---|---| | ` abstract void` | ` https://developer.android.com/reference/java/io/Reader#close()() ` Closes the stream and releases any system resources associated with it. | | ` void` | ` https://developer.android.com/reference/java/io/Reader#mark(int)(int readAheadLimit) ` Marks the present position in the stream. | | ` boolean` | ` https://developer.android.com/reference/java/io/Reader#markSupported()() ` Tells whether this stream supports the mark() operation. | | ` static https://developer.android.com/reference/java/io/Reader` | ` https://developer.android.com/reference/java/io/Reader#nullReader()() ` Returns a new `Reader` that reads no characters. | | ` int` | ` https://developer.android.com/reference/java/io/Reader#read()() ` Reads a single character. | | ` abstract int` | ` https://developer.android.com/reference/java/io/Reader#read(char[],%20int,%20int)(char[] cbuf, int off, int len) ` Reads characters into a portion of an array. | | ` int` | ` https://developer.android.com/reference/java/io/Reader#read(char[])(char[] cbuf) ` Reads characters into an array. | | ` int` | ` https://developer.android.com/reference/java/io/Reader#read(java.nio.CharBuffer)(https://developer.android.com/reference/java/nio/CharBuffer target) ` Attempts to read characters into the specified character buffer. | | ` boolean` | ` https://developer.android.com/reference/java/io/Reader#ready()() ` Tells whether this stream is ready to be read. | | ` void` | ` https://developer.android.com/reference/java/io/Reader#reset()() ` Resets the stream. | | ` long` | ` https://developer.android.com/reference/java/io/Reader#skip(long)(long n) ` Skips characters. | | ` long` | ` https://developer.android.com/reference/java/io/Reader#transferTo(java.io.Writer)(https://developer.android.com/reference/java/io/Writer out) ` Reads all characters from this reader and writes the characters to the given writer in the order that they are read. | ||
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||
| From interface ` https://developer.android.com/reference/java/io/Closeable ` |---|---| | ` abstract void` | ` https://developer.android.com/reference/java/io/Closeable#close()() ` Closes this stream and releases any system resources associated with it. | ||
| From interface ` https://developer.android.com/reference/java/lang/Readable ` |---|---| | ` abstract int` | ` https://developer.android.com/reference/java/lang/Readable#read(java.nio.CharBuffer)(https://developer.android.com/reference/java/nio/CharBuffer cb) ` Attempts to read characters into the specified character buffer. | ||
| From interface ` https://developer.android.com/reference/java/lang/AutoCloseable ` |---|---| | ` abstract void` | ` https://developer.android.com/reference/java/lang/AutoCloseable#close()() ` Closes this resource, relinquishing any underlying resources. | ||

## Public constructors

### LineNumberReader

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public LineNumberReader (Reader in)
```

Create a new line-numbering reader, using the default input-buffer
size.

<br />

| Parameters ||
|---|---|
| `in` | `Reader`: A Reader object to provide the underlying stream <br /> |

### LineNumberReader

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public LineNumberReader (Reader in, 
                int sz)
```

Create a new line-numbering reader, reading characters into a buffer of
the given size.

<br />

| Parameters ||
|---|---|
| `in` | `Reader`: A Reader object to provide the underlying stream <br /> |
| `sz` | `int`: An int specifying the size of the buffer <br /> |

## Public methods

### getLineNumber

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getLineNumber ()
```

Get the current line number.

<br />

| Returns ||
|---|---|
| `int` | The current line number <br /> |

**See also:**

- `https://developer.android.com/reference/java/io/LineNumberReader#setLineNumber(int)`

### mark

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void mark (int readAheadLimit)
```

Mark the present position in the stream. Subsequent calls to reset()
will attempt to reposition the stream to this point, and will also reset
the line number appropriately.

<br />

| Parameters ||
|---|---|
| `readAheadLimit` | `int`: Limit on the number of characters that may be read while still preserving the mark. After reading this many characters, attempting to reset the stream may fail. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | If an I/O error occurs |

### read

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int read ()
```

Read a single character. [Line terminators](https://developer.android.com/reference/java/io/LineNumberReader#lt) are
compressed into single newline ('\\n') characters. Whenever a line
terminator is read the current line number is incremented.

<br />

| Returns ||
|---|---|
| `int` | The character read, or -1 if the end of the stream has been reached <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | If an I/O error occurs |

### read

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int read (char[] cbuf, 
                int off, 
                int len)
```

Read characters into a portion of an array. Whenever a [line terminator](https://developer.android.com/reference/java/io/LineNumberReader#lt) is read the current line number is
incremented.

<br />

| Parameters ||
|---|---|
| `cbuf` | `char`: Destination buffer <br /> |
| `off` | `int`: Offset at which to start storing characters <br /> |
| `len` | `int`: Maximum number of characters to read <br /> |

| Returns ||
|---|---|
| `int` | The number of bytes read, or -1 if the end of the stream has already been reached <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | If an I/O error occurs |
| `https://developer.android.com/reference/java/lang/IndexOutOfBoundsException` |   |

### readLine

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String readLine ()
```

Read a line of text. Whenever a [line terminator](https://developer.android.com/reference/java/io/LineNumberReader#lt) is
read the current line number is incremented.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | A String containing the contents of the line, not including any [line termination characters](https://developer.android.com/reference/java/io/LineNumberReader#lt), or `null` if the end of the stream has been reached <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | If an I/O error occurs |

### reset

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void reset ()
```

Reset the stream to the most recent mark.

<br />

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | If the stream has not been marked, or if the mark has been invalidated |

### setLineNumber

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void setLineNumber (int lineNumber)
```

Set the current line number.

<br />

| Parameters ||
|---|---|
| `lineNumber` | `int`: An int specifying the line number <br /> |

**See also:**

- `https://developer.android.com/reference/java/io/LineNumberReader#getLineNumber()`

### skip

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public long skip (long n)
```

Skip characters.

<br />

| Parameters ||
|---|---|
| `n` | `long`: The number of characters to skip <br /> |

| Returns ||
|---|---|
| `long` | The number of characters actually skipped <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | If an I/O error occurs |
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | If `n` is negative |