java - 由于 CSV 中的换行符而导致的 ArrayIndexOutOfBounds 异常

标签 java excel csv

我想将 csv 文件上传到数据库。由于 CSV 中的换行符,我收到 arrayIndexOutOfBounds 异常。 Excel中有一些单元格带有换行符。我已经尝试了所有方法,通过删除Excel中的换行符,用代码中的空格替换\n。我正在使用 Putty 来编写和运行程序。当我在 putty 上上传 csv 文件时,即使我使用公式删除换行符,这些行也带有换行符。(现在在 Excel 中正确显示,但在 putty 中,它带有换行符。)

这是我正在读取 csv 的代码:

            try (BufferedReader br = new BufferedReader(new FileReader(csvFile)))
            {
                    int count=0;
                    int lastPersonId;
                    int listId=0;
                    int lineNo=0;
                      while ((line = br.readLine()) != null)
                      {
                            line = line.replace("\n", "").replace("\r", "").trim();

                            if (count==0)
                            {
                                    count++;
                                    continue;
                            }
                            String[] data = line.split(splitBy,-1);

                            prep = DatabaseConfig.dbConnection.prepareStatement(query,Statement.RETURN_GENERATED_KEYS);
                            prep.setString(1,data[1]);
                            prep.setString(2,data[2]);
                            prep.setString(3,data[3]);

如何解决这个问题?

提前致谢:)

最佳答案

CSV 格式提供某种形式的转义。如果单元格值包含换行符,它会用 " 包裹起来。所以你应该处理这个问题。

我建议你使用一些 CSV 解析库。

关于java - 由于 CSV 中的换行符而导致的 ArrayIndexOutOfBounds 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45280135/

相关文章:

java - 将 acegisecurity 框架与 spring 一起使用所需的示例链接

java - Java 数组的迭代器

python - 列表分配索引超出范围?

java - 如果整行以引号 "开头,Univocity CSV 解析器会粘合整行

python - Matplotlib 在给定 csv 数据的情况下创建曲面图 (x,y,z,color) - 颜色错误

java - 如何保存用户选择的 Intent ?

两个独立键盘的Java独立输入

Java 编译器选择了错误的重载

python - 放置样式和背景颜色 python excel

c# - 使用c#在一个单元格中使用多种格式