当前位置: 技术问答>java相关
如何打印一个文件的后10行
来源: 互联网 发布时间:2015-10-28
本文导语: 我的方法是先知道有多少行,然后把文件按行复制到一个String[]里,然后再用 String.length-10输出,但是比较麻烦,浪费空间,大家有没有好的方法啊? | 用LineInputStream 先取得函数,然后..... ...
我的方法是先知道有多少行,然后把文件按行复制到一个String[]里,然后再用
String.length-10输出,但是比较麻烦,浪费空间,大家有没有好的方法啊?
String.length-10输出,但是比较麻烦,浪费空间,大家有没有好的方法啊?
|
用LineInputStream
先取得函数,然后.....
先取得函数,然后.....
|
line.txt
=====================
1111111111111111111111111
222222222222222222222222222
333333333333333333333333333
4444444444444444444444444444
5555555555555555555555555555
66666666666666666666666666666
7777777777777777777777777777777
88888888888888888888888888
9999999999999999999999999
0000000000000000000000
1111111111111111112222222222
2222222222222222223333333333
3333333333333333334444444444
4444444444444444445555555555555
55555555555555555566666666666666
LineRead.java
=====================
import java.io.*;
public class LineRead {
public static void main(String args[]) {
try {
FileInputStream fis = new FileInputStream("c:/line.txt");
DataInputStream in_data = new DataInputStream(fis);
LineNumberInputStream lnis = new LineNumberInputStream(fis);
int i=0;
String s;
while(( s=in_data.readLine()) != null) {
i++;
}
System.out.print(i);
lnis.setLineNumber(11);
System.out.print(lnis.getLineNumber());
int k=0;
while(( k=lnis.read()) != -1) {
System.out.print(k);
}
}catch( IOException e ) {
System.out.println(e.toString());
}
}
}
怎么没有输出结果??
=====================
1111111111111111111111111
222222222222222222222222222
333333333333333333333333333
4444444444444444444444444444
5555555555555555555555555555
66666666666666666666666666666
7777777777777777777777777777777
88888888888888888888888888
9999999999999999999999999
0000000000000000000000
1111111111111111112222222222
2222222222222222223333333333
3333333333333333334444444444
4444444444444444445555555555555
55555555555555555566666666666666
LineRead.java
=====================
import java.io.*;
public class LineRead {
public static void main(String args[]) {
try {
FileInputStream fis = new FileInputStream("c:/line.txt");
DataInputStream in_data = new DataInputStream(fis);
LineNumberInputStream lnis = new LineNumberInputStream(fis);
int i=0;
String s;
while(( s=in_data.readLine()) != null) {
i++;
}
System.out.print(i);
lnis.setLineNumber(11);
System.out.print(lnis.getLineNumber());
int k=0;
while(( k=lnis.read()) != -1) {
System.out.print(k);
}
}catch( IOException e ) {
System.out.println(e.toString());
}
}
}
怎么没有输出结果??