Bom dia
No aplicativo que estou desenvolvendo existe um erro que preciso tratá-lo e não sei como fazer.
Acontece que é feito uma leitura em um arquivo de texto e na ultima linha existe um caracter especial que quando é lido gerá um erro assim:
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
preciso alertar o usuario que quando acontecer esse erro ele deve remover o caracter do arquivo emitindo uma msg de erro ou do tipo pop-up ou num jTextField mesmo que está como somente leitura e sem borda ficando imperceptivel quando tudo funcionar corretamente
segue a classe:
package unibancoleiturainclusao;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* @author erasmo.carvalho
*/
public class BaixaPreHeader {
private static String filler1;
private static String tipoDeRegistro;
private static String dataDoProcessamento;
private static String identificacaoReg;
private static String dsName;
private static String sequencia;
private static String codEscobGescob;
private static String nuCnpj;
private static String filler2;
private static String sql;
private static String sqlPreHeader = null;
public static void BaixaPreHeader(String arquivo) throws ClassNotFoundException, SQLException, FileNotFoundException{
BufferedReader leia = null;
Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://192.168.1.56/uni","root","root");
//leia = new BufferedReader(new FileReader("C:\Java\Uni\Proc_AGE_BAI2309.TXT"));
leia = new BufferedReader(new FileReader(arquivo));
String line;
try {
sql = "delete from baixa_pre_header";
Statement smtp = con.prepareStatement(sql);
smtp.execute(sql);
while ((line = leia.readLine()) != null) {
filler1 = line.substring(0, 4);
tipoDeRegistro = line.substring(4, 6);
dataDoProcessamento = line.substring(6, 14);
identificacaoReg = line.substring(14, 22);
dsName = line.substring(22, 72);
sequencia = line.substring(72, 81);
codEscobGescob = line.substring(81, 89);
nuCnpj = line.substring(89, 104);
filler2 = line.substring(104,400);
//System.out.println(filler1 + ";" + tipoDeRegistro + ";" + dataDoProcessamento + ";" + identificacaoReg + ";" + dsName + ";" + sequencia + ";" + codEscobGescob + ";" + nuCnpj);
if (tipoDeRegistro.equals("00")) {
sqlPreHeader = "insert into baixa_pre_header (filler1,tipoDeRegistro,dataDoProcessamento,identificacaoReg,dsName,sequencia,codEscobGescob,nuCnpj,filler2) values ('" + filler1 + "','" + tipoDeRegistro + "','" + dataDoProcessamento + "','" + identificacaoReg + "','" + dsName + "','" + sequencia + "','" + codEscobGescob + "','" + nuCnpj + "','" + filler2 + "')";
//System.out.println(sqlPreHeader);
Statement smtp1 = con.prepareStatement(sqlPreHeader);
smtp1.execute(sqlPreHeader);
}
}
leia.close();
con.close();
} catch (IOException err) {
//err.printStackTrace();
err.getMessage();
}
}
}
Alguem pode me ajudar?