Escrita e leitura de inteiros em um aquivo

O problema é o seguinte:
Estou lendo um arquivo binario considerando este aquivo como um DataInputStream.
Preciso ler estes dados fazer uma certa modificaçao e gravar em um outro arquivo.
Apos isso, preciso ler este novo arquivo.
O problema é que estes dados são do tipo inteiro. Em cada linha tenho varios inteiros.
Nao é necessario que o novo arquivo gravado seja binario.
O que posso utilizar para fazer isso. FileWrite e FileReader, ou DataInputStream/Out, ou RandomAccessFile ou…
Sao tantas opçoes, mas nao consigo pegar os mesmos dados lidos do primeiro arquivo!
Alguem poderia me ajudar?

Poxa! Será que o que perguntei é tao obvio, que ninguem quer me ajudar?!
:frowning:

Como vc está fazendo agora?

no arquivo original cada linha com a sequencia de inteiros representa somente 1 numero em binario?

Oi Mateus!

Como o arquivo esta em binario, estou lendo com:

arquivo.readInt();

sendo que o declarei como:

arquivo = new DataInputStream(new FileInputStream("C:/ArquivoX"));

Agora, quero modificar um inteiro de cada linha e gravar novamente as modificaçoes e o que ja havia no arquivo.
Exemplo de uma linha que li e cheguei a gravar como string em outro arquivo:
897523484 343613 24681 1273 0 2 1 33
com:

FileWriter novoArquivo = new FileWriter(); novoArquivo.write(String.valueOf(numero)+'\t');
para cada inteiro da linha.

Agradeço desde já!

Carla

package teste;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Leitor {
	public static void main(String[] args){
		try{
			BufferedReader reader = new BufferedReader(new FileReader("c:/arquivoLido.txt"));
			BufferedWriter writer = new BufferedWriter(new FileWriter("c:/arquivoGravado.txt"));
			
			String str;
			
			while(( str = reader.readLine()) != null){
				writer.write(str);
				writer.newLine();				
			}
			
			reader.close();
			writer.close();						
		}
		catch(FileNotFoundException e){
			e.printStackTrace();			
		}
		catch(IOException e){
			e.printStackTrace();
		}		
	}
}

Olá, eu editei o codigo, agora está mais simples, veja se ajuda … ele copia todo o conteudo de um arquivo txt para outro

não sei como e quais são as alterações que vc fará com os valores lidos, qualquer coisa poste novamente, tentarei ajudar como possivel! :wink:

Muito obrigada Mateus!
Suas dicas foram muito uteis, inclusive o que vc tinha escrito em sua resposta anterior.
Gostei de usar o “Scanner” tambem!
Valew! :grin:

o Scanner é bem legal mesmo e como eu sempre o uso eu acabo deixando coisas simples um pouco mais complexas do que deveriam (vc deve ter percebido pelo outro exemplo), e isso é um tremendo mal habito :oops:

Dica: sempre consulte a API pra saber como funciona determinado objeto/metodo, conhecendo diversas formas vc evita gambiarras

www.java.sun.com/api

nesse link constam todas as APIs inclusas no jdk!

vale a pena baixar, a jse 5.0 pelo menos, melhor que caçar no site toda hora …