【发布时间】:2016-03-24 20:28:30
【问题描述】:
我编写了代码来一次读取一行(行)制表符分隔的文件。我通过将 Excel 电子表格保存为制表符分隔的文本文件来创建他的文件。电子表格中的每一行有 39 列,这意味着 38 个选项卡。这样做的目的是能够在 XML 标记中包装 39 位数据中的每一个,包括空位。然而,这段代码 一个。一次打印电子表格中的每一条数据,我在尝试访问特定数据项时遇到了麻烦,这是必不可少的。例如,第一列是用户 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 人员更了解编程,他们处理的是操作,而不是编码。谢谢。
肯
【问题讨论】:
-
您是否考虑过使用 CSV 解析库?他们中的许多人可以使用可配置的字段分隔符。