从类 的命名来看,貌似LineNumberReader可以支持从任意行读取的功能,并且提供了setLineNumber()的方法,但是这个按照并不能改变文件指针的位置,只是你调用getLineNumber()这个函数时,结果会变。API上面说它并不能改变文件物理的指针位置。看来以后得小心使用。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
public class Ex7 {
public void dataReader(String nameFile, int start, int finish) {
if (start > finish) {
System.out.println("Error start or finish!");
return;
}
InputStream inputStream = null;
LineNumberReader reader = null;
try {
inputStream = new FileInputStream(new File(nameFile));
reader = new LineNumberReader(
new InputStreamReader(inputStream));
int lines = getTotalLines(new File(nameFile));
if (start < 0 || finish < 0 || finish > lines || start > lines) {
System.out.println("Line not found!");
return;
}
String line = reader.readLine();
lines = 0;
while (line != null) {
lines++;
if(lines >= start && lines <= finish){
System.out.println(line);
}
line = reader.readLine();
}
inputStream.close();
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
System.err.println("IO Error");
System.exit(0);
}
}
private int getTotalLines(File file) throws IOException{
FileReader in = new FileReader(file);
LineNumberReader reader = new LineNumberReader(in);
String line = reader.readLine();
int lines = 0;
while (line != null) {
lines++;
line = reader.readLine();
}
reader.close();
in.close();
return lines;
}
public static void main(String[] args) {
new Ex7().dataReader("data.txt", 2, 4);
new Ex7().dataReader("data.txt",3,8);
}
}
分享到:
相关推荐
16. Java中的`LineNumberReader`是`BufferedReader`的子类,用于在读取文件时记录行号,通过`setLineNumber(int)`和`getLineNumber()`方法进行设置和获取。 17. 在PowerPoint2003中,快速添加大量图片可使用“相册”...
可以通过`setLineNumber(int)`设置当前行号,`getLineNumber()`获取当前行号。 4. 在Word中,Ctrl+V快捷键和工具栏上的粘贴按钮功能相同,都是用于粘贴剪贴板中的内容。 5. Word中的软磁盘图形按钮代表保存功能,...
11. Java中,LineNumberReader是BufferedReader的子类,用于读文件时记录行号,通过`setLineNumber(int)`和`getLineNumber()`方法设置和获取当前行号。 12. 算法的时间复杂度和空间复杂度之间没有直接的关系,它们...
通过`setLineNumber(int)`方法可以设置当前行号,而`getLineNumber()`方法用于获取当前行号。 2. 软件测试的目的是尽可能多地发现程序中的错误,而不是证明程序的正确性或使其运行结果正确。因此,正确答案是C。 3...
9. Java的LineNumberReader类是BufferedReader的子类,它提供了记录和获取当前行号的方法,分别是setLineNumber(int)和getLineNumber()。 10. 软件测试的目的是发现程序中的错误,而不是修正它们。修正错误通常是...
- Java中的`LineNumberReader`类可以在读取文件的同时记录行号,它是`BufferedReader`的子类,可以通过`setLineNumber(int)`设置当前行号,用`getLineNumber()`获取当前行号。 6. HTTP协议: - HTTP代表超文本...
11. Java中的`LineNumberReader`是`BufferedReader`的子类,可以记录文件读取的行号,通过`setLineNumber(int)`和`getLineNumber()`方法设置和获取当前行号。 12. Excel2003中的常量可以是TRUE/FALSE、字母数字字符...
可以通过`setLineNumber(int)`设置行号,`getLineNumber()`获取当前行号。 10. 关系代数:在关系数据库中,按条件f对关系R进行选择的表达式是`б f(R)`。 11. C++程序输出:给定的C++程序中,如果a(2)小于b(3)...
13. Java中的LineNumberReader类是BufferedReader的子类,可以跟踪读取文件时的行号,通过setLineNumber(int)设置行号,getLineNumber()获取当前行号。 14. "蓝色巨人"指的是IBM,是计算机业界初期的重要企业。 15...
8. Java I/O流:Java中处理文件同时记录行号的类是LineNumberReader,它是BufferedReader的子类,使用setLineNumber(int)设置和getLineNumber()获取当前行号。 9. 索引的特性:索引可以提高查询效率,但不能提高...
- **解析**:`LineNumberReader` 类提供了一种在读取文件时记录行号的方法,通过其提供的 `setLineNumber(int)` 和 `getLineNumber()` 方法来实现这一功能。 ### 10. Java 中的关系运算符 - **正确答案**:`==` - *...
通过`setLineNumber(int)`和`getLineNumber()`方法可以设置和获取当前行号。 8. 题目8讲述了数据库系统的一个优点,即减少数据冗余,但并不能完全避免冗余。答案A正确。 9. 在数据库表设计中,定义数字类型的...
20. Java中的LineNumberReader是BufferedReader的子类,用于在读取文件时记录行号,通过setLineNumber(int)和getLineNumber()方法进行设置和获取。 21. 在Windows中,可以通过控制面板的添加/删除程序功能来添加或...
`LineNumberReader` 的主要功能是在读取文件的同时记录当前行号,通过 `setLineNumber(int)` 方法可以设置当前行号,而 `getLineNumber()` 方法则用于获取当前行号,这对于需要跟踪文件行数的应用场景非常有用。...
22. **Java I/O**:Java中的LineNumberReader是BufferedReader的子类,用于读取文件并记录行号,可以通过setLineNumber(int)和getLineNumber()方法设置和获取行号。 23. **HTML元素**:div是块级元素,不是行内元素...
通过 setLineNumber(int) 方法可以设置当前行号,而 getLineNumber() 方法则用于获取当前行号。 3. 桌面:在 Windows 98 及后续操作系统中,桌面是指启动后屏幕显示的主工作区,用户可以通过桌面快捷方式、图标等...
15. Java中的LineNumberReader:Java的`LineNumberReader`类是`BufferedReader`的子类,它提供了设置和获取当前行号的方法`setLineNumber(int)`和`getLineNumber()`。 16. 数据库的三级模式:模式(也称内模式)...
14. Java的LineNumberReader:Java的LineNumberReader类是BufferedReader的子类,可以记录读取文件时的行号,通过setLineNumber和getLineNumber方法设置和获取行号。 15. Excel的单元格坐标:Excel的每个单元格都有...
6. Java I/O流:Java中的`LineNumberReader`类是`BufferedReader`的子类,用于在读取文件时记录行号,通过`setLineNumber(int)`和`getLineNumber()`方法设置和获取当前行号。 7. Word文档格式:页边距是Word文档中...
4. Java中的LineNumberReader类是BufferedReader的子类,它提供了setLineNumber(int)和getLineNumber()方法来设置和获取当前读取的行号,这在处理多行文本时非常有用。 5. 字符串长度计算通常不包括转义字符,如\n...