当前位置: 首页 > 面试题库 >

JAVA-将CSV导入ArrayList

池麒
2023-03-14
问题内容

我正在尝试使用导入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/?



 类似资料:
  • 问题内容: 我正在做“elasticsearch入门”教程。不幸的是,本教程没有介绍将数据库导入Elasticsearch的第一步。 我用谷歌搜索找到了解决方案,但不幸的是它无法正常工作。这是我要实现的目标和拥有的目标: 我有一个要导入的数据文件(简化了) 我想使用导入。经过互联网研究后,我得到以下配置: 我在指定文档类型时遇到了麻烦,因此一旦导入数据,便导航到http:// localhost:

  • 问题内容: 将csv文件上传到mysql表的最佳/最快方法是什么?我想将第一行数据用作列名。 发现了这一点: 如何将CSV文件导入MySQL表 但是唯一的答案是使用GUI而不是Shell? 问题答案: 您无需编写脚本即可从CSV文件中提取信息,而是可以直接将MYSQL链接到该文件并使用以下SQL语法上传信息。 要将Excel文件导入MySQL,请先将其导出为CSV文件。从生成的CSV文件中删除CS

  • 我有一个csv文件,我想将它导入JTable。 是否有一个简单的示例显示如何将csv文件导入JTable?

  • 问题内容: 我有一个大约有2000条记录的CSV文件。 每个记录都有一个字符串和一个类别: 我需要将此文件读入如下列表: 如何使用Python将CSV导入到我需要的列表中? 问题答案: 使用csv模块: 输出: 如果你需要元组: 输出: 旧的Python 2答案,也使用csv模块:

  • 问题内容: 我正在寻找使用导入文件到SQL Server的帮助,我有几个基本问​​题。 问题: CSV文件数据的中间(例如:描述)之间可能有(逗号),那么如何进行导入处理这些数据? 如果客户端从Excel创建CSV,则用逗号括起来的数据(用双引号引起来)(如下例所示),那么导入如何处理呢? 我们如何跟踪某些行是否有不良数据,哪些导入会跳过?(导入会跳过不可导入的行) 这是带有标题的示例CSV: 和