我想使用java读取PSV文件。我的PSV文件中的记录有4列。我只想读取并输出第3列和第4列。做这个的最好方式是什么。 以下是我有:从PSV文件读取Java
BufferedReader PSVFile = new BufferedReader(new FileReader(fileName));
String dataRow = PSVFile.readLine();
while (dataRow != null)
{
String[] dataArray = dataRow.split("\n");
for (String item:dataArray)
{
String[] elements = item.split("|");
System.out.println(item);
}
System.out.println();
dataRow = PSVFile.readLine();
}
PSVFile.close();
System.out.println();
基于@AljoshaBre建议荫使用CSVReader,这样做:
reader = new CSVReader(new FileReader(fileName),'|');
String [] nextLine;
while ((nextLine = reader.readNext()) != null)
{
System.out.println(nextLine[3] + nextLine[4]);
}
我得到所需的输出,但随后得到一个错误: 异常在线程“ (ReadLoadLine [3] + nextLine [4]);第20行是System.out.println(nextLine [3] + nextLine [4]);第20行是System.out.println(nextLine [3] + nextLine [
管道分离或周期分离? – Brendan
管道分离。 – Ram
如果你得到这个例外,这可能意味着你的令牌数组没有你想象的那么大。也许你没有正确处理空白行(即0或1长度的令牌数组(取决于opencsv在这种情况下想要返回的数据)。 – Matt