我有文本文件
现在我想把它读成二维数组。
任何有示例代码或问题的人都被回答了吗?
答案 0 :(得分:0)
考虑这个文件分为中间两个相同格式的记录,你需要设计包含你想从这个文件中获取的字段的类。之后你需要阅读
List<String> fileLines = Files.readAllLines(Path pathToYourFile, Charset cs);
并使用正则表达式解析此文件。为简化此任务,您可以读取行,然后在每行指定regexp。
class UnstructuredFile {
private List<String> rawLines;
public UnstructuredFile (List<String> rawLines) {
this.rawLines = rawLines;
}
public List<FileRecord> readAllRecords() {
//determine where start and stop one record in list list.sublist(0,5) or split it to List<List<String>>
}
private FileRecord readOneRecord(List<String> record) {
//read one record from list
}
}
在这个类中我们首先检测每个记录的开始和结束,然后将其传递给从List中解析一个FileRecord的方法
也许你需要更多地解决你的任务,考虑你有一个记录
------
data 1
data 2
data 3
------
我们要做类RecordRowOne,RecordRowTwo等每个类都有正则表达式知道如何 解析记录字符串的特定行,并返回像
这样的部分结果RecordRowOne {
//fields
public RecordRowOne(String regex, String dataToParse) {
//code
}
int getDataOne() {
//parse
}
}
示例中的另一个行类具有类似
的方法getDataTwo();
创建所有这些行后,将它们传递给FileRecord类 从所有Row类获取数据,它将出现一个你文件的记录;
class FileRecord {
//fields
public FileRecord(RecordRowOne one, RecordRowTwo two) {
//get all data from rows and set it to fields
}
//all getters for fields
}
这是你的基本想法