从csv文件读取数据,将数据存储在数组中,并使用java中的数据进行搜索
我想用java读取一个CSV文件,并将该数据存储在一个数组中,以便能够在另一个函数中使用该数据进行搜索从csv文件读取数据,将数据存储在数组中,并使用java中的数据进行搜索,java,csv,Java,Csv,我想用java读取一个CSV文件,并将该数据存储在一个数组中,以便能够在另一个函数中使用该数据进行搜索 public ArrayList < Resp > processTextToRespList(String filePath) throws IOException { ArrayList < data > result = new ArrayList < data > (); br = new BufferedReader(new Fil
public ArrayList < Resp > processTextToRespList(String filePath) throws IOException {
ArrayList < data > result = new ArrayList < data > ();
br = new BufferedReader(new FileReader(csvFile));
while((row = BufferedReader.readNext()) != null) {
String line = scan.nextLine();
String[][] lineArray = line.split(" ");
result.add(new esp(lineArray[0], lineArray[1], lineArray[2]));
}
return result;
}
publicArrayListProcessTextToResList(字符串文件路径)引发IOException{
ArrayListresult=新的ArrayList();
br=新的BufferedReader(新的文件读取器(csvFile));
while((row=BufferedReader.readNext())!=null){
String line=scan.nextLine();
字符串[][]lineArray=line.split(“”);
结果.添加(新esp(lineArray[0]、lineArray[1]、lineArray[2]);
}
返回结果;
}
我不太明白你的问题是什么,但我想这与你给出的代码有关。我修复了明显的错误,将其转化为更可编译的内容:
public List < Resp > processTextToRespList(String filePath) throws IOException {
List<Resp> result = new ArrayList<>();
File csvFile = new File(filePath);
try(BufferedReader br = new BufferedReader(new FileReader(csvFile))){
String row;
while((row = br.readLine()) != null) {
String[] lineArray = row.split(" ");
result.add(new Resp(lineArray[0], lineArray[1], lineArray[2]));
}
}
return result;
}
public ListProcessTextToResList(字符串文件路径)引发IOException{
列表结果=新建ArrayList();
File csvFile=新文件(filePath);
try(BufferedReader br=new BufferedReader(new FileReader(csvFile))){
字符串行;
而((row=br.readLine())!=null){
字符串[]lineArray=行。拆分(“”);
结果.添加(新的响应(线性阵列[0]、线性阵列[1]、线性阵列[2]);
}
}
返回结果;
}
我没有纠正任何逻辑,我只是使用了您声明的变量,而不是您编写并关闭FileReader的初始非java代码。
告诉我这对你来说是否足够,或者你的问题是否比这更复杂
说明:
我将结果声明为一个列表而不是ArrayList,因为这是我自己的感觉,这里没有真正的错误
您在csvFile
上创建了一个文件阅读器,但从未声明过任何csvFile,我假设它是从文件路径生成的文件
我在try with resources
块中声明了FileReader
和BufferedReader
,这样它们就会自动关闭
我在br
上调用了readLine
,因为它是我们实例化的BufferedReader
,您不能只调用一个静态方法(它不存在)就希望它能工作
我拆分了我们刚刚读取的行
,而不是从从未声明的扫描仪读取的某行
总之,我只是修复了一些明显的错误,这些错误可能是在复制粘贴一些代码时出现的。我不确定你是否理解你在写什么,也不知道你在做什么。你的搜索标准是什么?这是ldap搜索。但是,我还可以,我只是不能让我的头开始阅读文件和存储信息,这样我就可以在每一行进行搜索。如果它是一个键值对类型的文件,那么使用Map而不是ArrayList,因为在搜索的情况下检索会快得多。可能会重复