【发布时间】:2014-02-22 14:14:28
【问题描述】:
以下是我读取和拆分文本文件内容的代码。
try {
br = new BufferedReader(new FileReader("F:\\Test.txt"));
final char[] cbuf = new char[2048];
final int length = br.read(cbuf);
cbuf[length] = '@';
String packet = new String(cbuf, 0, length + 1);
final String[] splitedPacket=packet.split("@");
for(int i=0;i<splitedPacket.length;i++)
{
if(splitedPacket[i].contains("POS"))
{
System.out.println(splitedPacket[i]+"@");
preparedstatement=connection.prepareStatement("insert into inserttextfile([file]) values(?)");
preparedstatement.setString(1, splitedPacket[i]+"@");
preparedstatement.executeUpdate();
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
它在我的小尺寸 .txt 文件中运行良好,但如果我使用超过 30 MB 的文本文件,我会得到数组索引超出范围的异常。
那么如何拆分和读取这种.txt文件并插入到数据库中呢? (特别期望拆分大文件(例如 5 MB 从 30 MB)并插入数据库) 请在这个问题上指导我。
【问题讨论】:
-
1.您没有读取整个文件读取规范docs.oracle.com/javase/7/docs/api/java/io/…。不要尝试一次读取所有文件内容。循环读取并插入数据库。使用 Scanner 根据分隔符读取。
-
记事本文件?你的意思是文本文件?
-
@m0skit0 是 .txt 文件。
-
你在这里有个好的开始。
标签: java