Arquivo texto com uma linha em branco no fim

2 respostas
J

Pessoal, boa tarde!

Estou usando o FileReader e o FileWriter para gerar um arquivo texto da seguinte maneira, o FileReader le o arquivo e na sequencia é feito o trtamento necessario e o FileWrite ja ecreve a linha tratada em um novo arquivo, porem nesse novo arquivo ele põe uma linha a mais.

Segue o codigo pra entenderem melhor:

BufferedReader in = null;
      BufferedWriter out = null;
      try {
         in = new BufferedReader(new FileReader(dirProcessamento+nomeDoArquivo));
         out = new BufferedWriter(new FileWriter(dirSaida+nomeDoArquivo, true));
         while ((linhaAtualParaTratamento = in.readLine()) != null) {
            ni_idtcartao         = Integer.parseInt(linhaAtualParaTratamento.substring(19,29));
            ni_idcarlog          = Integer.parseInt(linhaAtualParaTratamento.substring(29,47));
            dt_validadeanterior  = linhaAtualParaTratamento.substring(47,55).trim();
            dt_validadeposterior = linhaAtualParaTratamento.substring(55,63).trim();
            dt_revalidacao       = linhaAtualParaTratamento.substring(63,71).trim();
            dt_processamento     = linhaAtualParaTratamento.substring(71,79).trim();
            GUsUSER              = linhaAtualParaTratamento.substring(79,89).trim();
            GLcCod               = linhaAtualParaTratamento.substring(89,94).trim();
            GUsNOME              = linhaAtualParaTratamento.substring(94,114).trim();
            GLcDsc               = linhaAtualParaTratamento.substring(114,154).trim();
            
            String sqlLoader = ni_idtcartao        +"|"
                              +ni_idcarlog         +"|"
                              +dt_validadeanterior +"|"
                              +dt_validadeposterior+"|"
                              +dt_revalidacao      +"|"
                              +dt_processamento    +"|"
                              +GUsUSER             +"|"
                              +GLcCod              +"|"
                              +GUsNOME             +"|"
                              +GLcDsc;
           // out.write(sqlLoader + "\n");
            out.write(sqlLoader);
         }
         
      } catch (FileNotFoundException e) {
         ll_Retorno = 2;
         System.err.println("Erro na tentativa de abrir o arquivo");
      } catch (IOException ex) {
         ll_Retorno = 3;
         System.err.println("Erro na escrita do arquivo");
      } finally {
         if (in != null && out != null) {
            try {
               in.close();
               out.close();
            } catch (IOException e) {
               ll_Retorno = 4;
               e.printStackTrace();
            }
         }
      }

Como voces podem ver eu estava usando o out.write(sqlLoader + “\n”) que gera a linha a mais no fim do arquivo, então passei a usar o out.write(sqlLoader) mas ai ele escreve tudo numa linha só e preciso linha por linha…

Alguem tem uma sugestão???

Valeu…

2 Respostas

C

Opa Jason

Tenta isso

out.newLine(); out.write(sqlLoader);

J

Dessa maneira ele cria uma linha em branco na primeira linha, mas fiz uma gambiarra que deu certo, coloquei um contador de linhas e ficou assim:

if(contaLinha == 1)
               out.write(sqlLoader);
            else{
               out.newLine();
               out.write(sqlLoader);
            }

Valeu pela ajuda…

Criado 23 de maio de 2007
Ultima resposta 24 de mai. de 2007
Respostas 2
Participantes 2