ArrayIndexOutOfBounds由于CSV中的换行符而exception

我想上传我的CSV文件到数据库。 由于CSV中的换行符,我得到了arrayIndexOutOfBoundsexception。 新行有一些单元格。 我已经通过删除excel中的换行符来尝试所有的方法,用代码中的空格replace\ n。 我正在使用Putty编写和运行程序。 当我上传腻子上的csv文件时,即使使用公式删除换行符,这些行也会出现换行符(它现在在Excel中正确显示,但是在腻子中,它正在中断)。

这是我正在阅读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格式提供了某种forms的转义。 如果单元格的值包含换行符,则用" 。”所以你应该处理这个。

我build议你使用一些CSVparsing库。

这个问题解决了。 在Excel工作表中删除换行符时,我以错误的方式执行。 我现在在做什么=

1)在谷歌电子表格,按Ctrl + F,然后更多的选项(三个点)=去find并replace

2)在查找框中input\ n,然后select“使用正则expression式search”checkbox并点击全部replace

3)它将取代不必要的换行符。 这个Excel的CSV文件为我工作。

非常感谢大家的宝贵build议。 我现在将在CSVparsers,OpenCSV等工作谢谢:)