opencsv 从未知行读取但已知单词?
opencsv read from an unknow line but known word?
好的,我有一个 csv 文件:
Summary
heading1,heading2,heading3
value1,value2,value2
value1,value2,value2
value1,value2,value2
value1,value2,value2
Detail
heading11,heading12,heading13
value1,value2,value2
value1,value2,value2
value1,value2,value2
value1,value2,value2
我正在使用 com.opencsv.CSVReader 库。
我需要从行 "Detail" 读取,但我不知道它是哪一行,因为它之前可能有未定义数量的行。摘要从
开始
第 13 行,但我知道如何处理它。
opencsv 是否有一种简单的模式来找到行 "Detail" 并从那里开始?
或者我是否需要以某种方式计算 Detail 之前的行并将其作为参数传递给 OPENCSV?
由于将 CSV 分成多个部分不是常见要求,库也不一定支持,因此您应该找到自己感兴趣的行开始的位置并提取它们。一种方式可能是:
BufferedReader b = new BufferedReader(new FileReader(source));
String line = b.readLine();
StringBuilder build = new StringBuilder();
while(line != null && !line.equals("Detail")){
line = b.readLine();
}
line = b.readLine();
while(line != null){
build.append(line);
build.append('\n');
line = b.readLine();
}
System.out.println(build.toString());
Reader toBeParsed = new StringReader(build.toString());
这基本上是读取文件,直到找到与详细信息部分匹配的行,然后将所有剩余行添加到字符串中。从此字符串中使用 reader 可以将其输入 CSVReader。
我假设必须考虑所有剩余的行(如果不是这种情况,请考虑匹配另一个字符串以停止它),并且开始的行正好是 "Detail"(您可以使用用于更灵活方法的正则表达式)
好的,我有一个 csv 文件:
Summary
heading1,heading2,heading3
value1,value2,value2
value1,value2,value2
value1,value2,value2
value1,value2,value2
Detail
heading11,heading12,heading13
value1,value2,value2
value1,value2,value2
value1,value2,value2
value1,value2,value2
我正在使用 com.opencsv.CSVReader 库。
我需要从行 "Detail" 读取,但我不知道它是哪一行,因为它之前可能有未定义数量的行。摘要从
开始
第 13 行,但我知道如何处理它。
opencsv 是否有一种简单的模式来找到行 "Detail" 并从那里开始? 或者我是否需要以某种方式计算 Detail 之前的行并将其作为参数传递给 OPENCSV?
由于将 CSV 分成多个部分不是常见要求,库也不一定支持,因此您应该找到自己感兴趣的行开始的位置并提取它们。一种方式可能是:
BufferedReader b = new BufferedReader(new FileReader(source));
String line = b.readLine();
StringBuilder build = new StringBuilder();
while(line != null && !line.equals("Detail")){
line = b.readLine();
}
line = b.readLine();
while(line != null){
build.append(line);
build.append('\n');
line = b.readLine();
}
System.out.println(build.toString());
Reader toBeParsed = new StringReader(build.toString());
这基本上是读取文件,直到找到与详细信息部分匹配的行,然后将所有剩余行添加到字符串中。从此字符串中使用 reader 可以将其输入 CSVReader。
我假设必须考虑所有剩余的行(如果不是这种情况,请考虑匹配另一个字符串以停止它),并且开始的行正好是 "Detail"(您可以使用用于更灵活方法的正则表达式)