在Java中读取制表符分隔文件" line"一次

时间:2016-03-24 20:28:30

标签: java arrays excel tab-delimited-text

我编写了代码,一次读取一行(行)的制表符分隔文件。我通过将其保存为制表符分隔的文本文件,从Excel电子表格创建了该文件。电子表格中的每一行都有39列,这意味着38个标签。这样做的目的是能够在XML标记中包装39位数据中的每一位,包括空位。但是,这段代码 一个。一次一行打印电子表格中的每一条数据,我在尝试访问特定数据项时遇到问题,这是必不可少的。第一列是用户id,第十二列是主地址行1,36列是顾客注释。但是,如果我将下面的代码更改为get(55),我会得到一个IndexOutOfBounds异常。如果我要求第一个数据,得到(0),程序会列出整个文件中的每一个数据。

boolean resultFlag = false;
  try
   {   
     theScanner = new Scanner(new FileReader("C:\\WMS\\GGBTS_Patron_Data_20160317_V1-0.txt"));
   while (theScanner.hasNextLine())
   {
    patronRow = theScanner.next();
    itemArray = new ArrayList(Arrays.asList(patronRow.split("\t")));   
    for(int i=0; i<itemArray.size(); i++)
       {
        System.out.println(" -->"+itemArray.get(i));
       }        
   }
   resultFlag = true;
 }

在进入下一条逻辑行之前,我需要做些什么来获取单行的39个元素并能够通过索引号引用它们?我不知道Excel是否使用\ n \ r或类似的方式保存制表符分隔的文件。请帮忙。我在这里受到了一定程度的阻碍,因为虽然我是一名程序员多年,但在我目前的情况下,我是一个小型图书馆的学术参考图书管理员,没有办法获得IT支持。我知道编程比我们两个IT人员更好,他们处理的是操作,而不是编码。感谢。

1 个答案:

答案 0 :(得分:1)

这一行:

patronRow = theScanner.next();

应该是:

patronRow = theScanner.nextLine();

你想让整条线分开\t ......