Manipulando Arquivos

2 respostas
A

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

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.

, 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 programaehuaheuhaue

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