我有如下所示的特定文本文件:
name: meeting_name1
description:
04/18/2012 00:00:00
05/18/2012 00:00:00
... (more dates)
07/18/2012 00:00:00
name: meeting_name2
description: some_desc
04/18/2012 00:00:00
05/18/2012 00:00:00
... (more dates)
07/18/2012 00:00:00
(etc)
我的java对象看起来像这样:
class Meeting {
String name;
String description;
List<Date> dates;
}
我的观点是读取文件、解析值、创建对象并将它们保存到数据库。
我可以逐行读取文件并将其转换为 List<String>
, IE。所有数据放在一起。
`我可以创建一个 java 对象并用值填充它并将其保存到数据库中。
我的问题是如何发现我处于新对象开始的日期和行(名称:meeting_name2)的末尾。
所以我可以做类似 List<List<String>>
的东西哪里List<String>
将等于一个对象,即。 List<Meeting>
?
不确定是否可以理解,抱歉格式错误。
最佳答案
假设您可以将文件数据读取到List变量。 (见上面的答案)
List<String> lines = Files.readAllLines(Paths.get("FILE_NAME"));
现在,您可以看到下面的代码作为演示。这是简单的循环和 if else 语句。 希望对您有帮助。
public static void main(String[] args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
List<String> data = new ArrayList<>();
data.add("name: meeting_name1");
data.add("description: some_desc");
data.add("07/18/2012 00:00:00");
data.add("07/18/2012 00:00:00");
data.add("name: meeting_name2");
data.add("description: some_desc");
data.add("07/18/2012 00:00:00");
List<Meeting> result = new ArrayList<>();
Meeting temp = null;
for (String line : data) {
if (line.startsWith("name:")) {
temp = new Meeting(line.split(":")[1].trim());
result.add(temp);
} else if (line.startsWith("description:")) {
temp.setDescription(line.split(":")[1].trim());
} else {
temp.getDates().add(simpleDateFormat.parse(line)); // Use date for
}
}
System.out.println(result.get(0).getName() + ": " + result.get(0).getDates().size()); // meeting_name1: 2
System.out.println(result.get(1).getName() + ": " + result.get(1).getDates().size()); // meeting_name2: 1
}
static class Meeting {
String name;
String description;
List<Date> dates;
public String getName() {
return name;
}
public List<Date> getDates() {
return dates;
}
Meeting(String name) {
this.name = name;
this.dates = new ArrayList<>();
}
public void setDescription(String description) {
this.description = description;
}
}
关于JAVA8,解析文本文件并将其值解析为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52648509/