【发布时间】:2013-05-20 19:29:13
【问题描述】:
该文件以大约 200 行我不需要的背景信息开头。我试图跳过/忽略这 200 行,直到找到一个字符串。找到此字符串后,我希望能够继续处理文本文件的其余部分。
示例文本文件: (直到第 240 行是我需要跳过/忽略的所有行) http://pastebin.com/5Ay4ad6y
public static void main(String args[]) {
String endOfSyllabus = "~ End of Syllabus";
Path objPath = Paths.get("2014HamTechnician.txt");
if (Files.exists(objPath)) {
File objFile = objPath.toFile();
try (BufferedReader in = new BufferedReader(new FileReader(objFile))) {
String line = in.readLine();
while (line != null) {
line = in.readLine();
}
if(endOfSyllabus.equals(line) ){
restOfTextFile = line.split(endOfSyllabus);
}
}
System.out.println(restOfTextFile[0]);
}
catch(IOException e){
System.out.println(e);
}
}
else{
System.out.println(
objPath.toAbsolutePath() + " doesn't exist");
}
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new A19015_Form().setVisible(true);
}
});
}
【问题讨论】:
-
您当前的代码有什么问题?
-
用
if(line == endOfSyllabus ){这一行:不要在Java中使用==来比较String的值;请改用String#equals。 -
当您到达文件末尾时,
while循环将无法正常工作。 -
我想问题是我如何能够丢弃所有这些行,以便我可以继续从文本文件中提取数据。我希望能够遍历处理每一行的文本文件,但首先我想丢弃
~ End of Syllabus字符串之前的所有行。
标签: java text-files readline