Buenos dias estoy teniendo problemas para generar un script que me permita almacenar una base de datos que esta en un txt separando cada registro por lineas y cada columna por comas..
estoy intentando guardar estos registros en una base de datos mysql pero dado que es tan grande el archivo me esta generando un error:
at java.nio.HeapCharBuffer.toString(HeapCharBuffer.java:561)
at java.nio.CharBuffer.toString(CharBuffer.java:1201)
at java.util.regex.Matcher.toMatchResult(Matcher.java:249)
at java.util.Scanner.match(Scanner.java:1339)
at java.util.Scanner.hasNextLine(Scanner.java:1547)
at testproject.TestProject.main(TestProject.java:90)
Java Result: 1
les pongo el codigo completo por si alguien se le ocurre como solucionarlo....
package testproject;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Usuario
*/
public class TestProject {
/**
* @param args the command line arguments
*/
public static void conectar() {
try {
if (con == null || con.isClosed()) {
String connection
= "jdbc:mysql://" + "localhost" + ":" + "3306" + "/" + "base"; //System.out.println("[*][SQL] Conexión Exitosa.");
}
ex.printStackTrace();
System.
out.
println("[Error][SQL] No se pudo crear conexión con la base de datos."); }
}
public static void printLog
(String line
){ try {
pw.println(line);
pw.close();
Logger.getLogger(TestProject.class.getName()).log(Level.SEVERE, null, ex);
}
}
String driver
= "com.mysql.jdbc.Driver"; try {
Class.forName(driver);
}
conectar();
Scanner sc = null;
try {
inputStream
= new FileInputStream("C:\\Users\\usuario\\Desktop\\base5GB.txt");
sc = new Scanner(inputStream, "UTF-8");
while (sc.hasNextLine()) {
try{
if(line.length() > 2){
String [] campos
= line.
split(","); if(campos.length == 10){
String QUERY
= "INSERT INTO `tabla`(`campo1`, `campo2`,`campo3`, `campo4`, `campo5`, `campo6`, `campo7`, `campo8`, `campo9`, `campo10`) VALUES ("+campos
[0]+",'"+campos
[1]+"','"+campos
[2]+"','"+campos
[3]+"','"+campos
[4]+"','"+campos
[5]+"','"+campos
[6]+"','"+campos
[7]+"','"+campos
[8]+"','"+campos
[9]+"')"; if(prest.executeUpdate()>0){
System.
out.
println("ID Insertado "+campos
[0]); }else{
printLog(line);
}
}else{
printLog(line);
}
}else{
//System.out.println("ID Insertado"+idBD);
}
// System.out.println(line);
System.
out.
println("-"+line
+"-"); ex.printStackTrace();
printLog(line);
}
}
// note that Scanner suppresses exceptions
if (sc.ioException() != null) {
throw sc.ioException();
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (sc != null) {
sc.close();
}
}
}
}