我正在寻找CSV(逗号分隔值)解析器的Java实现,并正确处理Unicode数据,例如:带有中文文本的UTF-8 CSV文件。我想这样的解析器应该在迭代,比较等内部使用与代码点相关的方法。 Apache 2许可证或类似版本可以发挥最佳效果。
答案 0 :(得分:4)
答案 1 :(得分:0)
您是否尝试过Commons CSV?
答案 2 :(得分:-1)
写自己很容易。使用FileInputStream和使用UTF-8的InputStreamReader打开文件。将它包装在BufferedReader中,您可以使用readLine()迭代它。将每一行作为字符串。使用正则表达式将其拆分为字段。
唯一棘手的部分是构造正则表达式,因此它们不会将引号中包含的逗号视为字段分隔符。
上述方法效率低下,但对大多数应用来说都足够快。如果您有真正的性能要求,那么您将需要迭代字符的东西。几年前我写了一个使用状态机的工作正常。