Cod*_*224 8 java csv apache-commons-csv
在我的例子中,有效的CSV是用逗号或分号分隔的.我对其他库开放,但它需要是Java.通过Apache CSVParser API阅读,我唯一能想到的就是这样做看起来既低效又丑陋.
try
{
BufferedReader reader = new BufferedReader(new InputStreamReader(file));
CSVFormat csvFormat = CSVFormat.EXCEL.withHeader().withDelimiter(';');
CSVParser parser = csvFormat.parse( reader );
// now read the records
}
catch (IOException eee)
{
try
{
// try the other valid delimeter
csvFormat = CSVFormat.EXCEL.withHeader().withDelimiter(',');
parser = csvFormat.parse( reader );
// now read the records
}
catch (IOException eee)
{
// then its really not a valid CSV file
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法首先检查分隔符,或者可能允许两个分隔符?除了捕获异常之外,任何人都有更好的想法吗?
我们在uniVocity-parsers中为此提供了支持:
public static void main(String... args) {
CsvParserSettings settings = new CsvParserSettings();
settings.setDelimiterDetectionEnabled(true);
CsvParser parser = new CsvParser(settings);
List<String[]> rows = parser.parseAll(file);
}
Run Code Online (Sandbox Code Playgroud)
解析器还有许多其他功能,我相信您会发现它有用。试试看。
免责声明:我是该库的作者,它是开源的并且免费(apache 2.0许可)
| 归档时间: |
|
| 查看次数: |
7028 次 |
| 最近记录: |