我想按列值进行搜索,并使用java从csv文件中检索该特定行。假设我提供“ABC123”,结果应该采用这种格式“ABC123,SW,Php”。
这是csv文件格式:
Employee_Id,Designation,Domain
ABC123,SW,Php
XYZ456,SW,Java
那么如何搜索任何线索呢?谢谢。
答案 0 :(得分:1)
逐行阅读文件,BufferedReader
缠绕FileReader
。当你找到startsWith
你正在寻找的东西时停下来。关闭阅读器并返回该行。
编辑:
除非CSV文件有某种您未提及的顺序,否则您无法在此处进行任何花哨的搜索或优化。你必须阅读每一行,直到找到你想要的那一行。
答案 1 :(得分:0)
Use OpenCSV to read the CSV file,然后找到并返回您需要的值。
答案 2 :(得分:0)
/**
* returns a string which is comma separate column values for matching row otherwise null.
* @param searchColumnIndex
* @param searchString
* @return
* @throws IOException
*
*/
public String searchCsvLine(int searchColumnIndex, String searchString) throws IOException {
String resultRow = null;
BufferedReader br = new BufferedReader(new FileReader("somefile.csv"));
String line;
while ( (line = br.readLine()) != null ) {
String[] values = line.split(",");
if(values[searchColumnIndex].equals(searchString)) {
resultRow = line;
break;
}
}
br.close();
return resultRow;
}
根据您的情况,呼叫将为String result = searchCsvLine(0, "ABC123");
答案 3 :(得分:-2)
public class Example4 {
public static void main(String[] args) throws Exception {
String splitBy = ",";
BufferedReader br = new BufferedReader(new FileReader("C:\\\sample1.csv"));
String line;
while((line = br.readLine()) != null) {
String[] b = line.split(splitBy);
System.out.println(b[0]);
}
br.close();
}
}