我试图读取包含几个类似实体的.txt文件(见下文)。指示要创建的对象实例的标记是“TYPE”。我需要为所有可能的序列做这项工作。是否有一种方法可以让我逐行读取文件,直到找到“TYPE”标签,然后在实体的开头返回以读取其他行?
CONTRACT_LIST
{
CONTRACT
{
TIME_SPENT ***********
TYPE *************
.
.
.
.
PAYMENT_METHOD ***
DISCOUNT *****
}
}
我在BufferedReader中使用FileReader。提前谢谢。
答案 0 :(得分:1)
如果您使用的是Java 8,则可以使用Files.readAllLines
例如:
List<String> lines = Files.readAllLines(Paths.get("file.txt"), Charset.forName("UTF-8"));
for(String line : lines) {
if(line.contains("TYPE")) {
//Do your Thing
}
}
答案 1 :(得分:0)
你可以将所有内容存储在类似的列表中 `
List<String> l = new ArrayList<>();
String line;
BufferedReader buffer = new BufferedReader(new InputStreamReader(yourInputstream));
line= buffer.readLine();
l.add(line);
while (line!=null && !line.equals("TYPE")){
line= buffer.readLine();
l.add(line);
}
` 不保证它有效(非常累(つ◕_◕)つ)