我有馅饼|分开的csv文件。我想在java中读取这个文件。我有一个java代码,它在java中读取逗号分隔文件但在|时失败分开的csv文件
我的文件包含“客户代码|产品代码|发送给银行|发送给分支机构” 这种类型的数据不是以逗号分隔的。
Java代码
$('#homeimage').attr('src', changeThis);
答案 0 :(得分:3)
你应该改变
String strar[] = thisLine.split(",");
到
String strar[] = thisLine.split("\\|");
由于|
是正则表达式中的元字符,因此您需要将其转义。
同样如评论中所述,此解决方案没有考虑特殊情况......
答案 1 :(得分:0)
OpenCSV是一个很好的图书馆,可以让你在与java中的CSV交互时轻松生活。
答案 2 :(得分:0)
阅读代码| java中分离的csv文件
public static void main(String[] args) {
String csvFile = "D:\\VijayTest\\csvfile.csv";
DataInputStream myInput;
String thisLine;
ArrayList<ArrayList<String>> arList = new ArrayList<ArrayList<String>>();
ArrayList<String> al = new ArrayList<String>();
BufferedReader br = null;
try {
FileInputStream fis = new FileInputStream(csvFile);
myInput = new DataInputStream(fis);
while ((thisLine = myInput.readLine()) != null) {
al = new ArrayList<String>();
String strar[] = thisLine.split("\\|");
for (int j = 0; j < strar.length; j++) {
System.out.println(strar[j]);
al.add(strar[j]);
}
}
arList.add(al);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("Done");
}
答案 3 :(得分:0)
使用uniVocity-parsers并完成它:
CsvParserSettings settings = new CsvParserSettings();
settings.setLineSeparatorDetectionEnabled(true);
settings.getFormat().setDelimiter('|');
CsvParser parser = new CsvParser(settings);
List<String[]> allLines = parser.parseAll(YOUR_INPUT_HERE);
它的CSV解析器可以处理各种输入,也是Java中最快的CSV解析器。
披露:我是这个图书馆的作者。它是开源和免费的(Apache V2.0许可证)。