gpt4 book ai didi

java - 从文件中读取数据并将其存储到数组列表中

转载 作者:行者123 更新时间:2023-12-01 09:57:13 25 4
gpt4 key购买 nike

例如,我的文件夹中有两个 CSV 文件,需要从一个文件中逐行读取数据,并将其存储在数组列表 A 中,就像文件 2 存储到数组列表 B 动态地..即如果有 3 个文件,它应该存储在数组列表中 C

public class DashboardReport
{
public static void main(String[] args)
{
int count = 0;
String line = "";

File folder = new File("D:/April");
File[] listOfFiles = folder.listFiles();

System.out.println("Count" + listOfFiles.length);
count = listOfFiles.length;

List books = new ArrayList();

for (int i = 0; i <= listOfFiles.length; i++)
{
if (listOfFiles[i].isFile())
{
System.out.println("File " + listOfFiles[i].getName());
Path pathToFile = Paths.get(listOfFiles[i].getName());

try (BufferedReader br = Files.newBufferedReader(
pathToFile, StandardCharsets.US_ASCII))
{
line = br.readLine();
String[] attributes = {};

while (line != null)
{
attributes = line.split(",");
books.add(attributes);

line = br.readLine();
}
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
else if (listOfFiles[i].isDirectory())
{
System.out.println("Directory " + listOfFiles[i].getName());
}
}
}
}

最佳答案

这里有两个错误。其中一个在 for 循环中。

for (int i = 0; i <= listOfFiles.length; i++)
^

在数组上进行迭代时,您通常会从 0 迭代到 length - 1,而不是 0length.

那么第二个是你没有考虑路径,只考虑文件名。

Path pathToFile = Paths.get(listOfFiles[i].getName());
^

这将搜索具有相同名称的文件,但在当前工作目录中,并且像往常一样,不会找到它。将其更改为使用绝对路径。

Path pathToFile = Paths.get(listOfFiles[i].getAbsolutePath());

现在您将从 D:\April\ 目录获取文件,该目录确实存在您的文件。

关于java - 从文件中读取数据并将其存储到数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37096355/

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