Pegar linha de arquivo sql e excluir depois?

Pessoal, fiz um programinha em java em modo texto que serve para me ajudar a importar arquivos .sql para banco de dados MYSQL.
Uso esse sistema quando os arquivos sql são muuuito grandes e to com um arquivo sql com 151 Mega :shock:

Mas como o arquivo é muito grande o sistema demora muito pra pega as linhas, tendo como delimitador o ‘;’, entao quero ver se consigo fazer com que o sistema pegue a linha com o insert, execute no BD MYSQL e apague essa linha. Dessa forma, cada vez que ele executar o sql ele vai diminuir o tamanha do arquivo :wink:

Tem como faze isso ??

Segue o codigo que tenho atualmente:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Scanner;


public class ArquivoDelimitado {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String linha = null;  

		try {  
			Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/resourcespace?user=root&password=");
			Statement stm = conn.createStatement();

			Scanner sc;  
			FileInputStream fi;  
			File f;  
			String temp="";

			double contador = 1;

			f = new File("C:\\servidor_apache2\\www\\Estudo\\dados_relac.sql");  
			fi = new FileInputStream(f);  
			sc = new Scanner(fi);  

			while ( sc.hasNextLine() )  
			{  
				temp += sc.nextLine();  
				Thread.currentThread().sleep(100);				
				
				if(temp.indexOf(";") >= 0){
					// substitui o nome da tabela e das colunas de origem para o nome da tabela e coluna do MYSQL
					temp = temp.replace("relac", "relac_escola_prod");
					temp = temp.replace("escola", "id_escola");
					temp = temp.replace("produto", "id_produto");
					
					if(temp.length() <= 1048576){
						System.err.println("Tamanho: "+temp.length());
						System.out.println(temp);
						/*System.err.println("\nUltima linha: "+contador+"\n");
						System.out.println("Retorno da execução: "+stm.executeUpdate(temp));*/
						
					}
					else{
						System.err.println("Não foi possivel executar.");
					}
					temp="";
				}				
				if(temp.indexOf("--")>=0){
					temp="";
				}						
				contador++;				
			}  

			temp = null;

		} catch (Exception e) {  
			e.printStackTrace();  
		}  
	}

}

Obrigado!

Opa, beleza ?

Por que vc está usando o comando?

Thread.currentThread().sleep(100)

Utiliza StringBuffer ao invés de String.

Até mais.

[quote=tiralo]Opa, beleza ?

Por que vc está usando o comando?

Thread.currentThread().sleep(100)

Utiliza StringBuffer ao invés de String.

Até mais.[/quote]

Cara, nunca fiz uma bestera tão grande em Java como essa do sleep(100) ! auhsuahsa

Bom, tirei o comando e o programa esta lendo o arquivo bem rapido! :wink:

E eu nem reparei nesse comando. Afffff.

Mas muito obrigado pela ajuda hehe!
Resolveu meu problema, e pelo menos ta meu codigo ai caso alguem queira usar. Só tirem o comando com o sleep hehe!

Abraço!