Tôi đang cố gắng nhập khẩu CSV
tập tin để sử dụng Arraylist
StringTokenizer
:JAVA - Nhập CSV để ArrayList
public class Test
{
public static void main(String [] args)
{
List<ImportedXls> datalist = new ArrayList<ImportedXls>();
try
{
FileReader fr = new FileReader("c:\\temp.csv");
BufferedReader br = new BufferedReader(fr);
String stringRead = br.readLine();
while(stringRead != null)
{
StringTokenizer st = new StringTokenizer(stringRead, ",");
String docNumber = st.nextToken();
String note = st.nextToken(); /** PROBLEM */
String index = st.nextToken(); /** PROBLEM */
ImportedXls temp = new ImportedXls(docNumber, note, index);
datalist.add(temp);
// read the next line
stringRead = br.readLine();
}
br.close();
}
catch(IOException ioe){...}
for (ImportedXls item : datalist) {
System.out.println(item.getDocNumber());
}
}
}
Tôi không hiểu làm thế nào nextToken
công trình, bởi vì nếu tôi giữ khởi tạo ba biến (docNumber
, note
và index
) như nextToken()
, nó không thành công trên:
Exception in thread "main" java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken(Unknown Source)
at _test.Test.main(Test.java:32)
Nếu tôi giữ docNumber chỉ, nó hoạt động. Bạn có thể giúp tôi?
Tại sao bạn không sử dụng 'stringRead.split (", ")'? – Thomas
Hiển thị một dòng tiêu biểu – duffymo
Thư viện opencsv giúp đọc các tệp csv rất dễ dàng, không cần mã của riêng bạn. – Pete855217