我正在尝试制作一个简单的测试生成器。我想要一个按钮来解析文本文件并将记录添加到我的数据库中。问题和答案在文本文件中。我一直在网上搜索示例,但找不到与我的情况相符的示例。
文本文件包含我想忽略的标题信息,直到以“〜教学大纲结束”开头的行。我想用“~ End of Syllabus”来表示问题的开始。之后的几行查找在第七个字符位置带有“(”的行。我希望它表示问题编号行。问题编号行是唯一的,因为“(”位于第七个字符位置。我想用它作为一个标志来标记一个新问题的开始。在问题编号行中,前三个字符“T1A”是问题组。T1A * 01 *的最后一部分是问题编号那个组。
因此,如您所见,我还需要获取实际的问题文本行和答案行。同样通常在四个答案行之后是由“~~”指示的问题终止符。我不知道如何才能为文本文件中的所有问题做到这一点。我是否继续将它们添加到数组字符串中?我将如何从文件中访问这些信息并将其添加到数据库中。这对我来说非常令人困惑,我觉得我可以通过查看一个涵盖我的情况的示例来了解它是如何工作的。这是我正在谈论的文本文件的链接:http: //pastebin.com/3U3uwLHN
代码:
public static void main(String args[]) {
String endOfSyllabus = "~ End of Syllabus";
Path objPath = Paths.get("2014HamTechnician.txt");
String[] restOfTextFile = null;
if (Files.exists(objPath)){
File objFile = objPath.toFile();
try(BufferedReader in = new BufferedReader(
new FileReader(objFile))){
String line = in.readLine();
List<String> linesFile = new LinkedList<>();
while(line != null){
linesFile.add(line);
line = in.readLine();
}
System.out.println(linesFile);
}
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);
}
});
}