gpt4 book ai didi

java - 在java程序中加载一个csv文件

转载 作者:行者123 更新时间:2023-11-29 05:05:33 25 4
gpt4 key购买 nike

当我尝试运行此基准测试时 java8-lambda-benchmark .

使用命令:

java -cp build/jar/LambdaMicrobench.jar lambdademo.LambdaAvgExtraParallel 50000

我收到以下错误:

lambdademo/load_employees.csv: Not found in jar
java.lang.NullPointerException
at lambdademo.EmployeeFile.loadEmployeeList(Unknown Source)
at lambdademo.LambdaAvgExtraParallel.main(Unknown Source)
Exception in thread "main" java.lang.NullPointerException
at lambdademo.EmployeeFile.loadEmployeeList(Unknown Source)
at lambdademo.LambdaAvgExtraParallel.main(Unknown Source

文件 EmployeFile.java 如下:

public class EmployeeFile {

private static final String EMPLOYEE_FILE = "lambdademo/load_employees.csv";

public LinkedList<EmployeeRec> loadEmployeeList() {
LinkedList<EmployeeRec> employeeList = new LinkedList<>();
BufferedReader br = null;
try {
URL fileURL = getClass().getClassLoader().getResource(EMPLOYEE_FILE);
if (fileURL == null) {
System.out.println("resource is null");
}
InputStream in = fileURL.openStream();
br = new BufferedReader(new InputStreamReader(in));
} catch (Exception e) {
System.out.println(EMPLOYEE_FILE + ": Not found in jar");
e.printStackTrace();
}

try {
String line;
while ((line = br.readLine()) != null) {
String[] rec = null;
rec = line.split(",");
employeeList.add(new EmployeeRec(rec[0], rec[1], rec[2],
rec[3], rec[4], rec[5]));
}
} catch (IOException e) {
System.out.println("Error reading " + EMPLOYEE_FILE);
e.printStackTrace();
}
return employeeList;
}

现在我打印 fileURL 的值,我得到空值。csv 文件与项目源位于同一文件夹中。

最佳答案

当我使用 jar -xvf build/jar/LambdaMicrobench.jar我得到这个输出

 created: META-INF/
inflated: META-INF/MANIFEST.MF
created: lambdademo/
inflated: lambdademo/Constants.class
inflated: lambdademo/EmployeeFile.class
inflated: lambdademo/EmployeeRec.class
inflated: lambdademo/LambdaAvgExtraParallel.class
inflated: lambdademo/LambdaAvgExtraSerial.class
inflated: lambdademo/LambdaAvgParallel.class
inflated: lambdademo/LambdaAvgSerial.class
inflated: lambdademo/OldSchoolAvg.class
inflated: lambdademo/OldSchoolAvgExtra.class
inflated: load_employees.csv

这些是正确的,因为项目文件结构是:

--LambdaMicrobench
----load_employees.csv
----lambdademo
------*.class

解决方案是更改该字段,load_employees.csv 而不是 lambdademo/load_employees.csv

private static final String EMPLOYEE_FILE = "load_employees.csv"; 

关于java - 在java程序中加载一个csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30522150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com