Program 20.5: Print files and line number them
Program 20.5 is a version of the cat program that numbers the lines as it outputs them:
import java.io.FileInputStream;
import java.io.DataInputStream;
import java.io.LineNumberInputStream;
import java.io.IOException;
class lcat {
public static void main (String args[]) {
String thisLine;
//Loop across the arguments
for (int i=0; i < args.length; i++) {
//Open the file for reading
try {
FileInputStream fin = new FileInputStream(args[i]);
// chain the DataInputStream to a LineNumberInputStream
LineNumberInputStream lnis = new
LineNumberInputStream(fin);
// now turn the FileInputStream into a DataInputStream
try {
DataInputStream myInput = new DataInputStream(lnis);
try {
while ((thisLine = myInput.readLine()) != null) {
System.out.println(lnis.getLineNumber() + ": " +
thisLine);
} // while loop ends here
}
catch (Exception e) {
System.err.println("Error: " + e);
}
} // end try
catch (Exception e) {
System.err.println("Error: " + e);
}
} // end try
catch (Exception e) {
System.err.println("failed to open file " + args[i]);
System.err.println("Error: " + e);
}
} // for ends here
} // main ends here
}
Here's the first few lines produced when this program is run on itself.
% java lcat lcat.java
1: import java.io.FileInputStream;
2: import java.io.DataInputStream;
3: import java.io.LineNumberInputStream;
4:
5:
6: class lcat {
7:
8: public static void main (String args[]) {
9:
10: String thisLine;
11:
12: //Loop across the arguments
13: for (int i=0; i < args.length; i++) {
14:
15: //Open the file for reading
16: try {
Copyright 1996 Elliotte Rusty Harold
elharo@sunsite.unc.edu
This Chapter
Examples
Home