Wal*_*alt 6 java text file buffered
我正在使用缓冲读取器从文本文件中一次抓取一行.我也试图使用跟踪整数从文本文件中获取行号.不幸的是BufferedReader正在跳过空行(只有/ n或回车).
有没有更好的方法来解决这个问题?会使用扫描仪吗?
示例代码:
int lineNumber = 0;
while ((s = br.readLine()) != null) {
this.charSequence.add(s, ++lineNumber);
}
Run Code Online (Sandbox Code Playgroud)
pol*_*nts 23
我无法重现你BufferedReader跳过空行的说法; 它应该没有.
以下是显示空行不仅仅被跳过的片段.
java.io.BufferedReader String text = "line1\n\n\nline4";
BufferedReader br = new BufferedReader(new StringReader(text));
String line;
int lineNumber = 0;
while ((line = br.readLine()) != null) {
System.out.printf("%04d: %s%n", ++lineNumber, line);
}
Run Code Online (Sandbox Code Playgroud)
java.io.LineNumberReader String text = "line1\n\n\nline4";
LineNumberReader lnr = new LineNumberReader(new StringReader(text));
String line;
while ((line = lnr.readLine()) != null) {
System.out.printf("%04d: %s%n", lnr.getLineNumber(), line);
}
Run Code Online (Sandbox Code Playgroud)
java.util.Scanner String text = "line1\n\n\nline4";
Scanner sc = new Scanner(text);
int lineNumber = 0;
while (sc.hasNextLine()) {
System.out.printf("%04d: %s%n", ++lineNumber, sc.nextLine());
}
Run Code Online (Sandbox Code Playgroud)
以上任何代码段的输出是:
0001: line1
0002:
0003:
0004: line4
Run Code Online (Sandbox Code Playgroud)
LineNumberReader+ Scanner组合!java.util.Scanner - 验证输入有很多例子%02d %01d?你看过 LineNumberReader 吗?不确定这是否会对您有帮助。
http://download.oracle.com/javase/6/docs/api/java/io/LineNumberReader.html
| 归档时间: |
|
| 查看次数: |
48858 次 |
| 最近记录: |