2 回答
TA贡献1859条经验 获得超6个赞
扫描仪仅将逗号作为分隔符。但是您希望它也接受行尾作为另一个分隔符。
我假设您像这样实例化 Scanner,使用Scanner::useDelimiter:
Scanner s = new Scanner( inputStream ).useDelimiter( "," );
如果我得到正确的模式定义,它应该是:
Scanner s = new Scanner( inputStream ).useDelimiter( ",|\\R" );
\R 代表
Linebreak matcher:任意Unicode换行序列,等同于\u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029]
java.util.regex.Pattern有关详细信息,请参阅文档。
TA贡献1836条经验 获得超5个赞
CSV 文件包含文本行,其中每行包含以逗号分隔的值。因此,我建议您逐行阅读文件,然后用逗号分隔每一行。就像是...
java.io.FileReader fr = new java.io.FileReader("path to file");
java.io.BufferedReader br = new java.io.BufferedReader(fr);
String line = br.readLine();
while (line != null) {
String[] fields = line.split(",");
// Add code here to handle the "fields".
line = br.readLine();
}
请注意,上面的代码不是一个完整的解决方案,而是一个起点。例如,我没有关闭BufferedReader.
添加回答
举报
