[英]Reading data from file and store it in Array list
例如,我在文件夾中有兩個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
不是0
到length
。
然后第二個是您不考慮路徑,僅考慮文件名。
Path pathToFile = Paths.get(listOfFiles[i].getName());
^
這將搜索具有相同名稱但在當前工作目錄中的文件,並且照常將找不到該文件。 更改它以使用絕對路徑。
Path pathToFile = Paths.get(listOfFiles[i].getAbsolutePath());
現在,您將從該文件所在的D:\\April\\
目錄中獲取文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.