我有一个制表符分隔文件,我必须从文件中读取数据。阅读制表符分隔的文本文件时出现问题?
Col1 Col2 Col3
data1 data2 data3
data1 data2 data3
如果所有列均存在值,则不存在问题。问题是有时候少数列可能不包含如下所示的值。
Col1 Col2 Col3
data1 data3
data1 data2
在上面的数据中,能够读取第一行的数据,因为col2的值将为空字符串。 但第二行的col3没有数据。这里我得到了数组索引超出范围的例外。 为什么我没有得到第二行col3的空字符串?
我使用如下代码:
String dataFileName = "C:\\Documents and Settings\\User1\\some.txt";
/**
* Creating a buffered reader to read the file
*/
BufferedReader bReader = new BufferedReader(
new FileReader(dataFileName));
String line;
/**
* Looping the read block until all lines in the file are read.
*/
while ((line = bReader.readLine()) != null) {
/**
* Splitting the content of tabbed separated line
*/
String datavalue[] = line.split("\t");
String value1 = datavalue[0];
String value2 = datavalue[1];
String value3 = datavalue[2];
}
谢谢!
不是你的问题的答案,但一些共同的指导。应该考虑使用一些库来读取客栈的CSV文件,而不是重新发明轮子。像CSVReader一样:http://javacsv.sourceforge.net/com/csvreader/CsvReader.html – philnate
@philnate是正确的,我只是写了同样的评论。大多数CSV库支持任意分隔符(例如制表符)。我会建议您尽快切换!它可以帮助你解决这个问题和其他问题,比如引用文字等。 –
为什么你不使用这个表格结构的数据库 –