繁体   English   中英

一次读取Java中以制表符分隔的文件“一行”

[英]Read tab-delimited file in Java one “line” at a time

我编写了代码,以一次一行(行)读取制表符分隔的文件。 我通过将Excel文件保存为制表符分隔的文本文件从Excel电子表格中创建了他文件。 电子表格中的每一行都有39列,这意味着38个选项卡。 这样做的目的是能够将39位数据的每一个(包括空位)包装到XML标签中。 但是,此代码一个。 一次一行地打印电子表格中的每条数据,我在尝试访问特定数据项时遇到麻烦,这是必不可少的。 例如,第一列是用户ID,第十二列是主地址行1,第36列是顾客注释。 但是,如果将下面的代码更改为get(55),则会收到IndexOutOfBounds异常。 如果我要求第一条数据get(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人员要好。 谢谢。

这行:

patronRow = theScanner.next();

应该:

patronRow = theScanner.nextLine();

您想得到整行然后在\\t上分割...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM