我编写了一个程序来读取文本文件中的逐行结果,以使用下面的代码检查某些条件。
for (File f : readAllTxtFile) {
if (f.getName().endsWith(".txt") && f.getName().length() > 28) {
Scanner input = new Scanner(f);
while (input.hasNextLine()) {
String lineResult = input.nextLine();
System.out.println(lineResult); // I print out the line result here
if (lineResult.contains("TER_GetCarrierInfo")) {
...//do something
break;
}
}
}
}
我的问题是,为什么系统只读取到我的txt文件的一半并停止?虽然条件if (lineResult.contains("TER_GetCarrierInfo"))
不存在/命中,但它没有继续阅读下一行。
我的txt文件在900 ++ kb左右获得了数千行。
有人可以跟我解释一下吗?
感谢和appreaciate
答案 0 :(得分:0)
这是我用来模拟你的场景的代码。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class test {
public static void main(String args[]) throws FileNotFoundException
{
File dir = new File("/yourpath");
File[] readAllTxtFile = dir.listFiles();
for (File f : readAllTxtFile) {
if (f.getName().endsWith(".txt") && f.getName().length() > 28) {
Scanner input = new Scanner(f);
while (input.hasNextLine()) {
String lineResult = input.nextLine();
System.out.println(lineResult); // I print out the line result here
if (lineResult.contains("TER_GetCarrierInfo")) {
//do something
break;
}
}
}
}
}
}
如果你想检查你的程序是否继续在500行之后阅读,请在第500行之后的文本文件中输入'TER_GetCarrierInfo'并替换代码段
if (lineResult.contains("TER_GetCarrierInfo")) {
System.out.println("Found 'TER_GetCarrierInfo' ");
break;
}
这将显示即使文件的一半是scan.HTH,您的程序仍会继续。
答案 1 :(得分:0)
好的.. 我尝试改用
BufferedReader br = new BufferedReader(new FileReader(f));
它工作正常......嗯......