我想将 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/