在java中以高效的方式读取csv文件
我有下面的csv文件,它是逗号分隔的,现在我需要从这个文件中读取列der_id的值,我已经这样做了,但是请告诉我如何在java中以更优化的方式通过扫描器或任何比这更优化的java方法实现相同的效果在java中以高效的方式读取csv文件,java,performance,csv,Java,Performance,Csv,我有下面的csv文件,它是逗号分隔的,现在我需要从这个文件中读取列der_id的值,我已经这样做了,但是请告诉我如何在java中以更优化的方式通过扫描器或任何比这更优化的java方法实现相同的效果 wert,der_tran,der_id,der_version,cvns_num,cvs_type AB42126325,0,694698683,0,651626843,13002 AB42126326,0,694698686,0,651626846,13001 目前我正在以这种格式阅读这篇文章
wert,der_tran,der_id,der_version,cvns_num,cvs_type
AB42126325,0,694698683,0,651626843,13002
AB42126326,0,694698686,0,651626846,13001
目前我正在以这种格式阅读这篇文章
public class Parsingcsv {
public static void main(String[] args)
{
Parsingcsv obj = new Parsingcsv();
obj.run();
}
public void run()
{
String csvFile = "C:\\abc_2.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
try
{
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] id = line.split(cvsSplitBy);
System.out.println("[der_id= " + id[2] + "]");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("#####################3");
}
}
拆分一行以提取id效率很低,请尝试以下操作
String id = line.replaceAll(".*?,.*?,(.*?),.*", "$1");
你应该使用图书馆。在中有一些建议,请将此问题发布在《谢谢》中。您还可以简单地告知此正则表达式的作用。它说,在输入字符串中找到第三个标记(逗号分隔),并用它替换整个输入(实际返回),因此请告知如何使我的上述程序更优化。