Txt não grava até o final

1 resposta Resolvido
java
A

É 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);
        }
    }

}

1 Resposta

A
Solucao aceita

Ok. pessoal consegui resolver já. segue o código certo.

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);
                        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 + ";");
                        }
                    } catch (Exception e) {
                        data1 = "";
                        System.out.println("erro data/comando");
                    }
                }
                out.flush();
                readerCom.close();
                o.close();
            } catch (Exception x) {
                System.out.println(x);
            }
        }

    }
Criado 12 de maio de 2017
Ultima resposta 12 de mai. de 2017
Respostas 1
Participantes 1