Java:通过'读取大文件;n';一次记录
我有一个输入文本文件,有5k记录。我想读入1k记录,作为参数传递给SQL查询in子句(限制为1k值),然后从文本文件中获取下一个1k记录并重复。如何在java中实现这一点。以下是我迄今为止的示例代码:Java:通过'读取大文件;n';一次记录,java,jdbc,Java,Jdbc,我有一个输入文本文件,有5k记录。我想读入1k记录,作为参数传递给SQL查询in子句(限制为1k值),然后从文本文件中获取下一个1k记录并重复。如何在java中实现这一点。以下是我迄今为止的示例代码: FileInputStream fis = null; BufferedReader reader = null; try { fis = new FileInputStream("values.txt"); reader = new Buffer
FileInputStream fis = null;
BufferedReader reader = null;
try {
fis = new FileInputStream("values.txt");
reader = new BufferedReader(new InputStreamReader(fis))
int i,counter=0;
do{
String line;
ArrayList values = new ArrayList();
for(i=0;i<1000;i++){
line = reader.readLine();
values.append(line);
if(line ==null)
break;
}
counter = i;
String sql = ....;
//db connection
}while(counter<6000);
conn.close;
}
FileInputStream fis=null;
BufferedReader reader=null;
试一试{
fis=新文件输入流(“values.txt”);
读卡器=新的BufferedReader(新的InputStreamReader(fis))
int i,计数器=0;
做{
弦线;
ArrayList值=新的ArrayList();
对于(i=0;i您可以使用缓冲区提高读取速度,以便能够在每次文件访问中读取大数据块。因此,请指定BufferedReader
的缓冲区大小,如:
BufferedReader br = new BufferedReader(new FileReader("values.txt"), 1000);
或者使用自己的缓冲区将整个文件读取到内存中,如:
char[] buffer = new char[1000];
Reader r = new FileReader("values.txt");
int read;
do {
read = r.read(buffer);
// store buffer in a StringBuilder
} while (read > 0);
//read StringBuider using a buffered reader
它取决于您的要求和文件的大小。您可以创建任意大小的BufferedReader,例如底部样式创建1KB缓冲读取器。您可能应该查看文件中有多少行的大小为1KB或更大,并相应地进行配置
BufferedReader br;
br = new BufferedReader(new InputStreamReader(new FileInputStream("values.txt"), "UTF-16"), 1*1024);
您可以阅读path to values.txt的文档。它应该是绝对的。否则它将取决于命令行。删除了eclipse、oracle开发人员标记。您需要使用JDBC从Java插入/更新/查询数据库。随机链接