在java中从文件映射对象
发布时间:2020-12-15 08:34:39 所属栏目:Java 来源:网络整理
导读:我想从文本文件中映射我的对象,文本文件内容是这样的: ~attribute1valueattribute2valueattribute3valueattribute4valueattribute5valueattribute6value~attribute1valueattribute2valueattribute3valueattribute4valueattribute5valueattribute6value...co
我想从文本文件中映射我的对象,文本文件内容是这样的:
~ attribute1value attribute2value attribute3value attribute4value attribute5value attribute6value ~ attribute1value attribute2value attribute3value attribute4value attribute5value attribute6value ...continued same 因此,对于每个5个属性,我想创建新对象并将这6个属性映射到它(这不是问题),问题是我如何在阅读时区分线条,如何获得第一组,第二组等.谢谢 解决方法
这是一种更灵活的方法.我们可以指定一个自定义(单行)分隔符,在文件的开头或末尾实际上不需要分隔符(但可以给出),记录的行数是灵活的.数据被解析为一个简单的模型,可用于验证数据和创建最终对象.
private String recordDelimiter = "~"; public static List<List<String>> parse(Reader reader) { List<List<String>> result = new ArrayList<List<String>>(); List<String> record = new ArrayList<String>(); boolean isFirstLine = true; while ((line = reader.readLine()) != null) { line = line.trim(); if (line.length() == 0) { continue; // we skip empty lines } if (delimiter.equals(line.trim()) { if (!isFirstLine) { result.add(record); record = new ArrayList<String>(); } else { isFirstLine = false; // we ignore a delimiter in the first line. } continue; } record.add(line); isFirstLine = false; } if (!result.contains(record)) result.add(record); // in case the last line is not a separator return result; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |