JAVA-将CSV导入ArrayList

我正在尝试使用导入CSV文件:Arraylist``StringTokenizer

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());

}

}

}

我不明白是怎么nextToken工作的,因为如果我继续初始化三个变量(docNumbernoteindex)的nextToken(),它失败的:

Exception in thread "main" java.util.NoSuchElementException

at java.util.StringTokenizer.nextToken(Unknown Source)

at _test.Test.main(Test.java:32)

如果我仅保留docNumber,则它可以工作。你可以帮帮我吗?

回答:

输入文件中的某些行似乎包含少于3个逗号分隔的字段。您应始终检查令牌生成器是否具有更多令牌(StringTokenizer.hasMoreTokens),除非您100%确信输入正确。

正确解析CSV文件并不是一件容易的事。为什么不使用一个可以做得很好的库-http://opencsv.sourceforge.net/?

以上是 JAVA-将CSV导入ArrayList 的全部内容, 来源链接: utcz.com/qa/412167.html

回到顶部