Gerar arquivo .DAT ou TXT

8 respostas
MestreDosMagos89

Fala galera,

Estou com problema na geração de arquivos de acesso sequencial com a extensão DAT ou TXT, o sistema le os dados de um banco de dados e depois gera o arquivo em uma pasta específica.

O problema é quando o programa roda em Windows fica certinho, salva um registro em cada linha, agora quando o programa roda em linux ele salva todos os registro em uma linha e os separa por um caracter parecido com um retângulo.

Alguém sabe qual o problema?

obrigado desde já

8 Respostas

tiagoscd

Acredito que o problema se dá pelo fato de no Windows a quebra de linha ser representada por \r\n e no Linux somente por \n.

edmarr

Bom eh por causa do encode usando , vc deve padronizar o character de controle eh o 09 e 10 ,
porem vc esta tendo erro na aplicacao ou somente para visualizar o arquivo com outra ferramenta ?

Felagund

Não forçe o tipo deixe a JVM dar o separador de linha

; System.getProperty("line.separator")

Bird89du

d

MestreDosMagos89
edmarr:
Bom eh por causa do encode usando , vc deve padronizar o character de controle eh o 09 e 10 , porem vc esta tendo erro na aplicacao ou somente para visualizar o arquivo com outra ferramenta ?
O meu problema é só na visualização com o bloco de notas, mas quando eu tento importar para outro banco de dados no windows também tenho erro, você pode explicar como eu padronizo o characteres de controle?
Felagund:
Não forçe o tipo deixe a JVM dar o separador de linha
System.getProperty("line.separator")

O código está sendo inserido a partir de um for, eu coloquei o código dentro do for mas continua gerando com o caractere, será que eu fiz alguma coisa errada?

segue uma parte do código

for (ContatoBoasVindas contato : registros){
				
				StringBuilder linhaFormatada = new StringBuilder();
				linhaFormatada.append(formatarCampo(contato.getCampanha()));
				linhaFormatada.append("|");
				linhaFormatada.append(formatarCampo(contato.getDataImportacao()));
				linhaFormatada.append("|");
				linhaFormatada.append(formatarCampo(contato.getAgente()));
				System.getProperty("line.separator");
				registrosFormatados.add(linhaFormatada.toString());
			}

valeu

renamed
System.getProperty("line.separator");

retorna uma String (que é justamente a String que representa a quebra de linha)…

Não deixe jogado no código, passe como argumento para o metodo append do StringBuilder…

ok?

MestreDosMagos89

Oi renamed, fiz o seguinte:

linhaFormatada.append(System.getProperty("line.separator"));

funcionalmente não deu certo, agora ele está gerando dois caracteres, não sei como resolver isso,

valeu

MestreDosMagos89

Oi renamed, fiz o seguinte:

linhaFormatada.append(System.getProperty("line.separator"));

funcionalmente não deu certo, agora ele está gerando dois caracteres indesejáveis, não sei como resolver isso,
alguém pode ajudar?

valeu

Criado 1 de dezembro de 2009
Ultima resposta 1 de dez. de 2009
Respostas 8
Participantes 6