java如何按行和分号拆分CSV文件
大家好,我有一个CSV文件,如下所示:
ban;frst_name;last_nam;adrs_provnc;accnt_type_id....
ban1;frst_name1;last_nam1;adrs_provnc1;accnt_type_id....
....
我想把这个文件放到一个数据类型中,在这个数据类型中,我可以访问everyline的每一行以及每个字段。示例:如果我想要文件的第二行,那么我应该--
"ban1;frst_name1;last_nam1;adrs_provnc1;accnt_type_id...."
如果我想要第二行的第二个字段,我应该有:
"frst_name1"
是否有一种方法可以做到这一点,通过它我可以访问行和字段
这是我编的代码
public class cvsreader {
List<List<String>> cust_data = new ArrayList<List<String>>(); // declared a list of list
public void run() throws IOException {
String cust_line = "";
String delimeter = ";";
String cust_inputfile = "C:/input.csv"; // input file
BufferedReader cust_br = new BufferedReader(new FileReader(cust_inputfile));
while ((cust_line = cust_br.readLine()) != null){
cust_data = Arrays.asList(Arrays.asList(cust_line.split(delimeter))); // stored data from cust_line(string) to cust_data (list of list, so did type casting from list to array)
System.out.println(cust_data);
}
}
}
它给我的输出如下
[[ban,frst_name,last_nam,adrs_provnc,accnt_type_id....]]
[[ban1,frst_name1,last_nam1,adrs_provnc1,accnt_type_id....]]
[[.... ]]
现在如果我打印
System.out.println(cust_data.get(0));
它给出这样的输出-
[ban,frst_name,last_nam,adrs_provnc,accnt_type_id....]
[ban1,frst_name1,last_nam1,adrs_provnc1,accnt_type_id....]
[.... ]
一个sqaure大括号已经减少,但它应该只给出第一行
[ban,frst_name,last_nam,adrs_provnc,accnt_type_id....]
现在如果我打印
System.out.println(cust_data.get(0).get(0));
它会打印下面的内容
ban
ban1
没有方括号,但它应该只打印第一行的第一个字段,即-
禁令
请如果有人现在能够理解,为了得到想要的结果,实际上必须做些什么,请提出建议
# 1 楼答案
以下是逐行阅读的答案: How to read a large text file line by line using Java?
拆分字符串的答案如下:How to split a string in Java
本页提供解析CSV的完整示例:http://www.mkyong.com/java/how-to-read-and-parse-csv-file-in-java/
从其他SO线程粘贴的所有代码副本