Sou iniciante em java, e gostaria de tirar uma dúvida nesse assunto. Estou fazendo um programa onde é feita a leitura de um arquivo, e , a partir desse arquivo, são criados 2 outros arquivos. Vamos supor que o arquivo contenha os seguintes dados:
A8974380730696264304606242640267847366434973264976432969324692693642749369328463284693243274932432649263849264382962293942Z3333333
A6790609756965509364389649876483763874873892708742876576926836498639264248963249846384326432864844248246864283740479093040Z5555555
onde “A” é o início do registro e “Z” é o final do registro.
O que eu quero fazer é gravar cada registro em um arquivo separado.
Como devo proceder ??
Desde já agradeço pela ajuda.
Alexandre
Manipulando Arquivos
A
2 Respostas
C
Bom…
Pelo jeito cada registro fica em uma soh linha neh?!
Entao, vc vai abrir o arquivo com um RandomAccessFile(“arquivo.txt”,“r”) (Por exemplo, acredito q seja mais simples pra isso!!)
O “r” é modo de abertura do arquivo, no caso, somente leitura, para maiores informacoes vc pode consultar o doc do java.
Aí, com o objeto do RandomAccessFile p.e. arq=new Random…
vc utiliza o metodo arq.readLine(); q vai te retornar uma string com a linha inteira.
Ai vc deve criar um outro escreve=new RandomAccessFile(“novoarquivo.txt”,“w”)
e nele usa escreve.write(“registro-string lido do 1o. arquivo”);
e isso num laço…
bom… se eu falar mais eu acabo fazendo o teu programa…ehuaheuhaue…
Espero ter ajudado…
Falow!
A
O problema é que tem registros que ficam em mais de uma linha.
Aí eu não sei o que fazer.
No programa anterior que eu tinha feito, eu fazia a leitura inteira do arquivo e ía copiando caracter por caracter em outra string, enquanto não chegava o caracter ‘Z’.
Depois de feito isso, eu copiava os caracteres restantes após o ‘Z’ e mandava gravar num arquivo utilizando o PrintWriter.
Acontece que toda vez que eu executava o programa, ele travava, e só gravava o primeiro arquivo (não gravando os restantes) e no início desse novo arquivo, sempre aparecia NULL antes dos dados.
O que eu posso estar fazendo de errado ???
Criado 9 de fevereiro de 2004
Ultima resposta 10 de fev. de 2004
Respostas 2
Participantes 2