1 //: TestLineNumber.java 2 package c10; 3 4 import java.io.FileInputStream; 5 import java.io.InputStreamReader; 6 import java.io.LineNumberReader; 7 8 /** 9 * @time: 上午11:05:58 10 * @date: 2017年4月30日 11 * @auther: skyfffire 12 * @version: v0.1 13 */ 14 public class TestLineNumber { 15 public static void main(String[] args) { 16 String path = "C:\Program Files (x86)\Dev-Cpp\copying.txt"; 17 18 try { 19 LineNumberReader lnr = new LineNumberReader( 20 new InputStreamReader(new FileInputStream(path), "UTF-8")); 21 22 String line = null; 23 24 while ((line = lnr.readLine()) != null) { 25 System.out.format("%-5d|%s ", lnr.getLineNumber(), line); 26 } 27 28 // 养成好习惯 29 lnr.close(); 30 } catch (Exception e) { 31 e.printStackTrace(); 32 } 33 } 34 } 35 36 ///:~
1.不知道是哪个版本开始,废除了原本的LineNumberInputStream, 转而修改为了LineNumberReader;
2.InputStreamReader接受的是一个InputStream,因为FileInputStream为InputStream的SubClass,理所当然可以上诉造型为InputStream。