Tenho um arquivo txt que esta nesse formato (só exemplo):
1234567890
2345678901
3456789012
4567890123
Cada linha dessa tem uma quantidade de caracteres certos que formam uma informação (coluna).
Quero dar um insert desse arquivo no SQL SERVER já separando por colunas.
Só como informação adicional, se for preciso, ou mais facil; já consegui colocar delimitadores pra definir o tamanho certo de cada coluna e para definir o fim de linha.
Esse arquivo é atualizado diariamente, ou seja, todo dia tenho 700 novos registros para importar para o BD.
Segue o Código que estou utilizando
package testsql;
import java.sql.*;
import java.io.*;
import javax.swing.*;
public class Main {
public void Gravar(String batidas_novas){
String conteudo = batidas_novas;
try{
String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
"databaseName=CLEAN;user=sa;password=1234;";
Connection con;
Statement stmt;
con = DriverManager.getConnection(connectionUrl);
stmt = con.createStatement();
//FileWriter x = new FileWriter("C:\Users\reinaldo.sales\Desktop\batidas_novas.txt",true);
FileReader fr = new FileReader("C:\Users\reinaldo.sales\Desktop\batidas03-02-11.txt"); // Local do Arquivo
BufferedReader br = new BufferedReader(fr); // Alterando da variável fr para br
String s = "";
while (( s = br.readLine() ) != null) {
if (s.charAt(9) == '3') { // faz a comparação, se o indice 9 for igual a 3 ele faz isso ai em baixo
conteudo += "\r\n"; // criando nova linha e recuo no arquivo
stmt.executeUpdate("INSERT INTO BATIDAS(ID, IGNORA1, DATA, HORA, IGNORA2, PIS) VALUES ('s.substring(0,9)', 's.substring(9,10)', 's.substring(10, 18)', 's.substring(18,19)', 's.substring(19, 22)', 's.substring(22,23)', 's.substring(23)')");
}
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e.getMessage(),"Atenção",JOptionPane.WARNING_MESSAGE);
}
}