
- Java.io - Home
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io package Useful Resources
- Java.io - Discussion
Java - StreamTokenizer lineno() method
Description
The Java StreamTokenizer lineno() method returns the current line number.
Declaration
Following is the declaration for java.io.StreamTokenizer.lineno() method.
public int lineno()
Parameters
NA
Return Value
This method returns the current line number of this stream tokenizer.
Exception
NA
Example - Usage of StreamTokenizer lineno() method
The following example shows the usage of StreamTokenizer lineno() method.
StreamTokenizerDemo.java
package com.tutorialspoint; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Reader; import java.io.StreamTokenizer; public class StreamTokenizerDemo { public static void main(String[] args) { String text = "Hello. This is a text \n that will be split " + "into tokens. 1 + 1 = 2"; try { // create a new file with an ObjectOutputStream FileOutputStream out = new FileOutputStream("test.txt"); ObjectOutputStream oout = new ObjectOutputStream(out); // write something in the file oout.writeUTF(text); oout.flush(); // create an ObjectInputStream for the file we created before ObjectInputStream ois = new ObjectInputStream(new FileInputStream("test.txt")); // create a new tokenizer Reader r = new BufferedReader(new InputStreamReader(ois)); StreamTokenizer st = new StreamTokenizer(r); // set line change as significant st.eolIsSignificant(true); // print the current line number System.out.println("Line Number:" + st.lineno()); // print the stream tokens boolean eof = false; do { int token = st.nextToken(); switch (token) { case StreamTokenizer.TT_EOF: System.out.println("End of File encountered."); eof = true; break; case StreamTokenizer.TT_EOL: System.out.println("End of Line encountered."); System.out.println("Line Number:" + st.lineno()); break; case StreamTokenizer.TT_WORD: System.out.println("Word: " + st.sval); break; case StreamTokenizer.TT_NUMBER: System.out.println("Number: " + st.nval); break; default: System.out.println((char) token + " encountered."); if (token == '!') { eof = true; } } } while (!eof); } catch (Exception ex) { ex.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result −
Line Number:1 Word: Hello. Word: This Word: is Word: a Word: text End of Line encountered. Line Number:2 Word: that Word: will Word: be Word: split Word: into Word: tokens. Number: 1.0 + encountered. Number: 1.0 = encountered. Number: 2.0 End of File encountered.
Example - Print line number for each token
The following example shows the usage of StreamTokenizer lineno() method.
StreamTokenizerDemo.java
package com.tutorialspoint; import java.io.IOException; import java.io.Reader; import java.io.StreamTokenizer; import java.io.StringReader; public class StreamTokenizerDemo { public static void main(String[] args) throws IOException { String input = "Java 101\nPython 202\nC 303"; Reader reader = new StringReader(input); StreamTokenizer tokenizer = new StreamTokenizer(reader); tokenizer.eolIsSignificant(true); // Count lines accurately System.out.println("Tokens with line numbers:"); while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) { if (tokenizer.ttype == StreamTokenizer.TT_WORD) { System.out.println("Line " + tokenizer.lineno() + ": Word - " + tokenizer.sval); } else if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) { System.out.println("Line " + tokenizer.lineno() + ": Number - " + tokenizer.nval); } else if (tokenizer.ttype == StreamTokenizer.TT_EOL) { // Line numbers increase after TT_EOL } } } }
Output
Let us compile and run the above program, this will produce the following result−
Tokens with line numbers: Line 1: Word - Java Line 1: Number - 101.0 Line 2: Word - Python Line 2: Number - 202.0 Line 3: Word - C Line 3: Number - 303.0
Explanation
Each token is printed along with the line number.
lineno() reflects the line the token was found on.
Example - Stop reading after line 2
The following example shows the usage of StreamTokenizer lineno() method.
StreamTokenizerDemo.java
package com.tutorialspoint; import java.io.IOException; import java.io.Reader; import java.io.StreamTokenizer; import java.io.StringReader; public class StreamTokenizerDemo { public static void main(String[] args) throws IOException { String input = "One 1\nTwo 2\nThree 3"; Reader reader = new StringReader(input); StreamTokenizer tokenizer = new StreamTokenizer(reader); tokenizer.eolIsSignificant(true); System.out.println("Reading only up to line 2:"); while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) { if (tokenizer.lineno() > 2) break; // Stop after line 2 if (tokenizer.ttype == StreamTokenizer.TT_WORD) { System.out.println("Line " + tokenizer.lineno() + ": Word - " + tokenizer.sval); } else if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) { System.out.println("Line " + tokenizer.lineno() + ": Number - " + tokenizer.nval); } } } }
Output
Let us compile and run the above program, this will produce the following result−
Reading only up to line 2: Line 1: Word - One Line 1: Number - 1.0 Line 2: Word - Two Line 2: Number - 2.0
Explanation
This example stops processing tokens once line 3 is reached.
Demonstrates conditional logic using lineno().