gpt4 book ai didi

java - 从包中读取 CSV 文件

转载 作者:行者123 更新时间:2023-12-01 10:04:36 25 4
gpt4 key购买 nike

我有一个复制到我的工作包中的 CSV 文件,我想从我的包中读取它而不是我电脑上的路径,以免每次更换电脑时都更改链接,但我不知道该怎么做,我尝试了一个对我不起作用的解决方案,这是我的代码:

public static void main(String[] args) {
CSV obj = new CSV();
obj.run();
}

public void run() {
String csvFile = "C:/Users/Intervalle tech/Desktop/SV.csv";
BufferedReader br = null;
String line = "";
//URL url = Thread.currentThread().getContextClassLoader().getResource("/BocOperations/src/operations/SV.csv");
//File file = new File(url.getPath());

try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
// String[] Element = line.split(cvsSplitBy);
System.out.println( line );
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

最佳答案

该行不正确

URL url = Thread.currentThread().getContextClassLoader().getResource("/BocOperations/src/operations/SV.csv");

如果您使用 ClassLoadergetResource() 方法,则不应添加前导 / 并且需要指定路径开始来自根包。因此,如果 SV.csv 驻留在 operations 包中(并且 operations 位于根包中)

URL url = Thread.currentThread().getContextClassLoader()
.getResource("operations/SV.csv");

请不要使用自定义实现来读取 CSV 文件

opencsv

Apache Commons CSV

使用opencsv的示例

CSVReader reader = new CSVReader(
new FileReader("c:/xxx.csv"));
// Read all rows at once
List<String[]> allRows = reader.readAll();

从 URL 读取文件

BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

您可以考虑指定读取文件的编码。

关于java - 从包中读取 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36545363/

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