Java:通过'读取大文件;n';一次记录

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

我有一个输入文本文件,有5k记录。我想读入1k记录,作为参数传递给SQL查询in子句(限制为1k值),然后从文本文件中获取下一个1k记录并重复。如何在java中实现这一点。以下是我迄今为止的示例代码:

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插入/更新/查询数据库。随机链接