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?!
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!
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!
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
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 …