É o seguinte faço a leitura de um arquivo txt que está em um layout e monto ele em outro.
o problema é que chegando em certo ponto do arquivo ele para de escrever as linhas. aguem pode me dar uma luz para ver o que eu estou fazendo de errado.
Segue o código:
public void gravar2() {
String cliente = "";
String credito = "";
String codEmp = "2663";
String valor = "";
String conta = "";
String data1 = "";
String linha = new String();
String documento = new String();
File pasta = new File("c:\\Integração via banco\\inicial");
File arquivos[] = pasta.listFiles();
File arquivo2 = new File("c:\\Integração via banco\\final");
File arquivos2[] = arquivo2.listFiles();
for (int k = 0; k < arquivos2.length; k++) {
arquivos2[k].delete();
}
for (int j = 0; j < arquivos.length; j++) {
try {
FileReader readerCom = new FileReader(arquivos[j].getAbsolutePath());
FileWriter o = new FileWriter("c:\\Integração via banco\\final\\" + arquivos[j].getName() + ".txt");
BufferedReader Buffered = new BufferedReader(readerCom);
PrintWriter out = new PrintWriter(o);
while ((linha = Buffered.readLine()) != null) {
try {
data1 = linha.substring(93, 103);
} catch (Exception e) {
data1 = "";
System.out.println("erro data/comando");
}
if (data1.contains("/")) {
data1 = data1.substring(0, 2) + data1.substring(3, 5) + data1.substring(8, 10);
try {
documento = linha.substring(42, 48);
int doc = Integer.parseInt(documento);
documento = doc + "";
} catch (Exception e) {
System.out.println(e);
}
valor = linha.substring(103, 120).replace(".", "").replace(" ", "").replace("R$", "");
cliente = linha.substring(11, 42).replace(" ", "");
conta = linha.substring(64, 70);
if (conta.contains("220033")) {
conta = "65";
}
if (conta.contains("220237")) {
conta = "67";
}
if (conta.contains("225556")) {
conta = "64";
}
if (conta.contains("220041")) {
conta = "18";
}
if (conta.contains("120748")) {
conta = "23";
}
credito = "";
try {
ConnectionFactory c = new ConnectionFactory();
Connection con = c.abreConexao();
Statement select = con.createStatement();
ResultSet result = select.executeQuery("SELECT bethadba.ctlancto.cdeb_lan FROM bethadba.ctlancto WHERE bethadba.ctlancto.codi_emp = " + codEmp + " AND bethadba.ctlancto.chis_lan like('% " + documento + " %') and (bethadba.ctlancto.orig_lan = 5 or bethadba.ctlancto.orig_lan = 7) order by bethadba.ctlancto.dorig_lan desc");
result.next();
credito = result.getString(1).toString();
} catch (SQLException e) {
System.out.println(e);
}
if (credito.equals("") || credito.equals("0")) {
credito = "1665";
}
if (conta.length() > 2) {
conta = "66";
}
out.println(";" + data1 + ";" + conta + ";" + credito + ";" + valor + ";" + "VALOR AVISO CREDITO " + documento + " " + cliente + ";");
}
}
out.flush();
readerCom.close();
o.close();
} catch (Exception x) {
System.out.println(x);
}
}
}