0

我有一个包含一些数据的文本文件。当我尝试将数据放入 MySQL 时,我收到此错误“ java.lang.OutOfMemoryError: Java heap space”。

我的代码:

        try {
        // create a buffer reader
        java.io.BufferedReader br = new BufferedReader(new FileReader(f));
        // define line
        String line = null;
        // connect to the database
        connect = (Connection) DbConnection.establishConnection();
        while ((line = br.readLine()) != null) {
            // create preparedStatement
            preparedStatement = (PreparedStatement) connect.prepareStatement("insert into  IdentifiedExpertList values (?,?)");

            String[] rowData = line.split("\\s+", 2);
            String firstColumnData = rowData[0];
            String secondColumnData = null;
            if (rowData[1].trim().isEmpty()) {
                secondColumnData = null;
            } else {
                secondColumnData = rowData[1];
            }

            preparedStatement.setString(1, firstColumnData.trim());
            preparedStatement.setString(2, secondColumnData);
            preparedStatement.executeUpdate(); 

        }
        br.close();
        }
4

1 回答 1

4
java.lang.OutOfMemoryError: Java heap space

表示您为 JVM 分配的内存不足以跟上将文件加载到内存中所需的内存。

您可以使用-Xms-Xmx标志为 JVM 分配内存。如果正在使用的内存非常少,请使用这些标志来增加它并查看。

如果您仍然有内存问题,那么另一种可能的解决方案是读取文件块并上传到数据库,而不是一次读取整个文件。

如果它们都不起作用,则意味着您的代码中可能存在内存泄漏。你需要修复它。

于 2012-09-10T21:28:16.320 回答