java - 如何在java中读取这些特定行

标签 java file-io csv io java.util.scanner

我有一个像这样的 csv 文件:

i,0             <-- 1st line  
f,1,2,3         <-- 2nd line  
s,0,1,2,3,4,5,6 <-- 3rd line  
0,1,A  
0,5,B  
1,1,A  
1,3,B  
2,6,A  
2,4,B  
3,6,A  
3,4,B  
4,6,A  
4,4,B  
5,1,A  
5,5,B  
6,6,A  
6,2,B  

我如何在java中将这些行读取到4个不同的数组/数组列表?
我想要的输出是这样的:

  • 第一行:0 [第一个数组]
  • 第 2 行:1 2 3 [第 2 个数组] --> 只有 1 行,但 token 的长度未知
  • 第 3 行:0 1 2 3 4 5 6 [第 3 个数组] --> 只有 1 行,但 token 的长度未知
  • 其余行:-->固定3个标记,但行号未知
    0 1 A
    0 5 B
    1 1 A
    1 3 B
    2 6 A
    2 4 B
    3 6 A
    3 4 B
    4 6 A
    4 4 B
    5 1 A
    5 5 B
    6 6 A
    6 2 B

无法通过扫描仪和开关盒条件的组合来获得正确的结果..

最佳答案

我不会使用switch。只需逐行读取文件即可。如果文件已生成(或者您确信它是正确的),那么您可以像这样读取它

reader = new BufferedReader(new FileReader(...));
array1 = readFirstLine(reader);
array2 = readSecondLine(reader);
array3 = readThirdLine(reader);
// and so on

并实现每个read...方法来处理单行格式。

更新:读取方法可能类似于

private String[] readFirstLine(BufferedReader reader) {
    String line = reader.readLine();
    String[] fields = line.split(",");
    return fields;
}

关于java - 如何在java中读取这些特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4603590/

相关文章:

java - 使用 String Replace(old, new) ,其中 "old"之前的字符不是字母表

java - 访问两个表的数据

java - Spring : Exception starting filter springSecurityFilterChain

c - C-编译后从文件读取文本的程序崩溃

python - 在使用 python 将值写入 csv 文件之前将值与字段名进行比较

python - 比较 CSV 文件 - python 3(初学者)

java - 将 HashMap 的特定键值集复制到另一个 HashMap 中

java读取加密对象

java - 就性能而言,在什么时候用 BufferedOutputStream 包装 FileOutputStream 才有意义?

database - UTF-8 元组存储使用最低公分母,仅追加