Java - LineNumberReader setLineNumber(int lineNumber) method



Description

The Java LineNumberReader setLineNumber(int lineNumber) method manually sets the line number to a specified value lineNumber. However, it does not move the reading position. It only updates the internal line number counter.

Declaration

Following is the declaration for java.io.LineNumberReader.setLineNumber(int lineNumber) method −

public void setLineNumber(int lineNumber)

Parameters

lineNumber − an int specifying the current line number to be set.

Return Value

The method does not return any value.

Exception

NA

Example - Usage of LineNumberReader setLineNumber(int lineNumber) method

The following example shows the usage of Java LineNumberReader setLineNumber(int lineNumber) method.

LineNumberReaderDemo.java

package com.tutorialspoint;

import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;

public class LineNumberReaderDemo {
   public static void main(String[] args) throws IOException {
      FileReader fr = null;
      LineNumberReader lnr = null;
      int i;
      
      try {
         // create new reader
         fr = new FileReader("test.txt");
         lnr = new LineNumberReader(fr);
         
         // set current line number
         lnr.setLineNumber(100);
         System.out.println("setLineNumber(100) is invoked");
         
         // get current line number
         i = lnr.getLineNumber();
         System.out.print("Current line number: "+i);
         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      } finally {
         // closes the stream and releases system resources
         if(fr!=null)
            fr.close();
         if(lnr!=null)
            lnr.close();
      }
   }
}

Output(Assuming test.txt contains multiple lines)

Let us compile and run the above program, this will produce the following result−

setLineNumber(100) is invoked
Current line number: 100

Example - Manually Setting the Line Number Before Reading

The following example shows the usage of Java LineNumberReader setLineNumber(int lineNumber) method. This example sets the starting line number to 100 before reading lines from a string.

LineNumberReaderDemo.java

package com.tutorialspoint;

import java.io.IOException;
import java.io.LineNumberReader;
import java.io.StringReader;

public class LineNumberReaderDemo {
   public static void main(String[] args) {
      String text = "First Line\nSecond Line\nThird Line";
      LineNumberReader lnr = new LineNumberReader(new StringReader(text));

      try {
         // Set line number to 100 before reading
         lnr.setLineNumber(100);
         System.out.println("Line Number before reading: " + lnr.getLineNumber());

         System.out.println(lnr.readLine());
         System.out.println("Line Number after first read: " + lnr.getLineNumber());

         System.out.println(lnr.readLine());
         System.out.println("Line Number after second read: " + lnr.getLineNumber());

         lnr.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

Line Number before reading: 100
First Line
Line Number after first read: 101
Second Line
Line Number after second read: 102

Explanation

  • Manually sets the starting line number to 100.

  • Reads the first line, so the line number increments to 101.

  • Reads the second line, so the line number increments to 102.

Example - Resetting the Line Number After Skipping Lines

The following example shows the usage of Java LineNumberReader setLineNumber(int lineNumber) method. This example reads two lines, then manually resets the line number to 50 before continuing.

LineNumberReaderDemo.java

package com.tutorialspoint;

import java.io.IOException;
import java.io.LineNumberReader;
import java.io.StringReader;

public class LineNumberReaderDemo {
   public static void main(String[] args) {
      String text = "Alpha\nBeta\nGamma\nDelta";
      LineNumberReader lnr = new LineNumberReader(new StringReader(text));

      try {
         System.out.println("Reading: " + lnr.readLine());
         System.out.println("Line Number: " + lnr.getLineNumber());

         System.out.println("Reading: " + lnr.readLine());
         System.out.println("Line Number: " + lnr.getLineNumber());

         // Reset line number to 50 (without moving the position)
         lnr.setLineNumber(50);
         System.out.println("Line Number manually set to: " + lnr.getLineNumber());

         System.out.println("Reading: " + lnr.readLine());
         System.out.println("Line Number after manual reset: " + lnr.getLineNumber());

         lnr.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

Reading: Alpha
Line Number: 1
Reading: Beta
Line Number: 2
Line Number manually set to: 50
Reading: Gamma
Line Number after manual reset: 51

Explanation

  • Reads two lines, so the line number reaches 2.

  • Manually resets the line number to 50 (this does not move the position).

  • Reads "Gamma", and the line number increments to 51.

java_io_linenumberreader.htm
Advertisements