希望你能幫上忙。仍然試圖讓我的頭轉向Java!將.txt文件的內容讀入2D字符串ARRAYLIST
我有一個文本文件的內容我想存儲(並在以後使用)到一個2D數組列表中。 文本文件例子是這樣的(條目數量不確定的不確定行數):
狗,貓,猴子,大象
芯片,香腸,豆子,鼠標,螞蟻
任何東西,不管一些對象,不知道,每一行都有不同,數值的
我希望能夠打印出的文本文件,只是因爲它有整齊地存放在我的二維數組列表中的項目,但站(BID)
如:
狗|貓|大象|
芯片|香腸|豆類|小鼠|螞蟻|
任何東西|任何|一些對象| dunno |每一行都有不同的數值|
但是當我運行下面的程序,我得到:
山坳是15
狗|貓|猴子|大象|芯片|香腸|豆|鼠標|螞蟻|什麼|什麼|一些對象|說不上|每行都有不同的數值|
狗|貓|大象|薯片|香腸|豆類|鼠標|螞蟻|任何東西|任何|一些對象| dunno |每一行都有不同的數值|
狗|貓|大象|薯片|香腸|豆類|鼠標|螞蟻|任何東西|任何|一些對象| dunno |每一行都有不同的數值|
即,txt文件中的每一行(在這種情況下有3個)似乎在包含txt文件中所有行的biD結構中產生一個條目。 真的,每個打印的行應該只包含一行來自txt文件的項目。
下面是代碼:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class testData {
private static Scanner file;
static int rows;
public static void main(String[] args) throws FileNotFoundException {
ArrayList<ArrayList<String>> biD = new ArrayList<ArrayList<String>>();
file = new Scanner(new File("C:/tmp/text.txt"));
ArrayList<String> line = new ArrayList<String>();
while (file.hasNextLine()) {
final String nextLine = file.nextLine();
final String[] items = nextLine.split(",");
for (int i = 0; i < items.length; i++) {
line.add(items[i]);
}
biD.add(line);
rows++;
Arrays.fill(items, null); // to clear out the 'items' array
}
int col = biD.get(0).size();
System.out.println("col is " + col);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < biD.get(i).size(); j++) {
System.out.print(biD.get(i).get(j) + "|");
}
System.out.println();
}
}
}
所以基本上我的出價結構似乎是儲存過多的信息。
所以一個walkthough(我認爲)應該是:
從文件中讀取一行
店的字符串(nextLine)在
分割字符串,並存儲在一個字符串數組中的項目(項目)
將項目添加到陣列列表(行)
將arraylist添加到陣列列表biD。
(這是我要去哪裏錯了,我想,也許不理解如何的ArrayList做工正確,我認爲!)
任何想法,任何人?
謝謝。
簡直不敢相信這就是它!非常感謝,埃裏克(和塞內克)! –