从PSV文件读取Java
我想用java读取一个PSV文件。我的PSV文件中的记录有4列。我只想读取并输出第3列和第4列。最好的方法是什么。 以下是我所拥有的:
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建议Iam使用CSVReader,执行以下操作:
reader = new CSVReader(new FileReader(fileName),'|');
String [] nextLine;
while ((nextLine = reader.readNext()) != null)
{
System.out.println( nextLine[3] + nextLine[4]);
}
我正在获得所需的输出,但随后出现错误: 线程“main”java中出现异常。lang.ArrayIndexOutofBounds异常:2 在Read_PSV。main(Read_PSV.java:20) 第20行是系统。出来println(nextLine[3]+nextLine[4])
# 1 楼答案
OpenCSV是我选择的武器
这个片段将为您提供第三列和第四列:
它会打印出来
对于此输入:
测试。psv
# 2 楼答案
Commons Lang在这方面也有很好的课程:
注意:strokenizer本身被设计为一次处理一条记录,因此您必须使用类似java的Scanner之类的工具一次处理一行。通过“重置”方法,StrTokenizer本身是可重用的(尽管不是线程安全的)
它有很多选项,比如引号字符、空格处理、空令牌处理等等。。。不确定opencsv会有哪些选项