Ajuda na manipulação de arquivos em Java

Olá pessoal…tô precisando da ajuda de vcs…

É o seguinte :

Gostaria de saber como escrever strings em arquivos texto. Li o livro de Deithel mas o exemplo que ele deu só permite que se grave objetos e com registros de tamanho fixo. Pra recuperar informações gravadas dessa maneira é necessário criar outro programa apenas para ler os dados em um formato que o usuário possa aceitar.

Queria algo paracido com o C :
Vc abre um arquivo e escreve o que vc quer em um formato qualquer. Depois vc apenas abre o arquivo(texto) e utiliza as informações. Dessa maneira dá até pra gerar código em uma determinada linguagem.

O que eu tô querendo fazer é escrever dados obtidos do meu programa em um arquivo texto no formato da linguagem do matlab pra depois abrir esse mesmo arquivo, copiar e colar no prompt do mat esses dados e depois plotar gráficos.

Será que tem um jeito ??? :cool:

se der mande mini códigos…valeu pessoal e não precisam economizar nas respostas…

Salve nnewtonn!!!

Cara há forma sim de fazer isto acho que é StringBufferRead o método para fazer leitura desse tipo, amanhã darei a você uma resposta concreta porque não estou em casa e de cabeça eu não sei!!!

Beleza??? :oops: :cry:

eu sei algumas maneiras de gravação ve se elas servem!!!
precisa-se de
import java.io.*;

O arquivo que só grava uma vez

{
try{
PrintWriter p=new PrintWriter(new FileWriter(?C:/aula.txt?));
p.print(?Exemplo de gravação de texto?);
p.close();
}
catch(Exception e)
{}
}

O arquivo seqüencial, onde os dados são adicionados sequencialmente ao arquivo já existente sem perder os dados (gravação adicional)

Ex
try{
RamdomAcessFile r = new RamdomAcessFile(?C:/aula2.txt? ,?rw?); //leitura/escrita
r.seek ( r.length() ); // posicionamento?.posiciona o cursor depois da ultima posicao da string no arquivo
r.writeBytes( t1.getText() ); // gravar dados no arquivo
r.close();
}
catch(Exception e)
{}

Leitura de arquivos

try
{
FileReader f=new FileReader(“c:/aula.txt”);
BufferedReader in=new BufferedReader(f);
String s;

while((s=in.readLine())!=null)
{
System.out.println(s);
}}
catch(Exception e)
{}}

valeu cara ve se serve ae!!!espero ter ajudado!!
são esses tipos de modos de salvar que eu conheço. Se alguem saber algum outro geito por favor me falem ok?
:dj: :drum

Valeu pessoal…vou testar as dicas recebidas até agora…

mas gostaria se possível que mais pessoas tentasse responder a essa questão…pois podemos descobrir maneiras diferentes de fazer isso…valeu ???

“A Verdade que não Liberta não é Verdade” - Yeshua :wink:

[quote=“shadow”]eu sei algumas maneiras de gravação ve se elas servem!!!
precisa-se de
import java.io.*;

O arquivo que só grava uma vez

{
try{
PrintWriter p=new PrintWriter(new FileWriter(?C:/aula.txt?));
p.print(?Exemplo de gravação de texto?);
p.close();
}
catch(Exception e)
{}
}

O arquivo seqüencial, onde os dados são adicionados sequencialmente ao arquivo já existente sem perder os dados (gravação adicional)

Ex
try{
RamdomAcessFile r = new RamdomAcessFile(?C:/aula2.txt? ,?rw?); //leitura/escrita
r.seek ( r.length() ); // posicionamento?.posiciona o cursor depois da ultima posicao da string no arquivo
r.writeBytes( t1.getText() ); // gravar dados no arquivo
r.close();
}
catch(Exception e)
{}

Leitura de arquivos

try
{
FileReader f=new FileReader(“c:/aula.txt”);
BufferedReader in=new BufferedReader(f);
String s;

while((s=in.readLine())!=null)
{
System.out.println(s);
}}
catch(Exception e)
{}}

valeu cara ve se serve ae!!!espero ter ajudado!!
são esses tipos de modos de salvar que eu conheço. Se alguem saber algum outro geito por favor me falem ok?
:dj: :drum[/quote]

Salve shadow…

o teu 1º exemplo funcionou…mas vc sabe como formatar a saida no arquivo ???

por exemplo, nova linha do C “\n” ou a tabulação “\t”…o retrocesso ???
java permite isso ???

espero sua resposta e obrigado desde já.

“Não se irrite por não conseguir fazer as pessoas serem como vc quer já que vc mesmo não é como gostaria de ser” - Thomás de Kempis

Salve

Cara tenho esse código aí, nunca me deu problema veja só:

String nomArq = seuArquivo.txt;

// lê arquivo
File arquivo = new File ( nomArq );
if ( arquivo.exists() )
{
   BufferedReader ler = new BufferedReader( new FileReader( nomArq ));
   String linha;
   while ( ( linha = ler.readLine() ) != null)
   {
      aqui você vai fazer o que você precisar!!!!
    }
    ler.close();
}

acho que resolve seu problema!!!

Até mais!

sim o \n e o \t funcionam na saida de dados!!
faça um teste e veja use:

System.out.printf("\n\t testando…");
System.out.printf("\n\t testando…");
e irá imprimir no DOS…
qualquer duvida mande um email flw… :lolgoku: :dj:

[quote=“shadow”]sim o \n e o \t funcionam na saida de dados!!
faça um teste e veja use:

System.out.printf("\n\t testando…");
System.out.printf("\n\t testando…");
e irá imprimir no DOS…
qualquer duvida mande um email flw… :lolgoku: :dj:[/quote]

nunca testei assim não … mas o que eu sei que funciona e é mais elegante (ehhe) é : System.getProperty(“line.separator”);

vc pode me dar um exemplo pra que eu possa ver como que fica? :lol:

System.out.println(“Ola”+System.getProperty(“line.separator”)+“meu nome é :”+System.getProperty(“line.separator”));

ok ???

System.out.println(“Ola”+System.getProperty(“line.separator”)+“meu nome é :”+System.getProperty(“line.separator”));

ok ???[/quote]

Olá Brossi…tudo bein???

diz aí : qual é a principal propriedade do getProperty ???
quais são os seus principais argumentos ???
pode ser utilizado com outras classes de manipulação de arquivos ???
em que circustâncias ele é mais utilizado ???

Espero suas respostas.

Valeu cara… :slight_smile:

Aproveitando o topico, sera que funcionaria se eu colocasse uma URL no lugar do nome do arquivo ? E que no meu caso, preciso de uma referencia a um arquivo da net.

não, vc não pode criar um objeto da classe File com a classe URL

mas vc pode usar a classe InputStreamReader para ler dados do arquivo


URL url = new URL(local);
InputStreamReader entrada = new InputStreamReader(URL.openStream());

eu vi isso na API agora mas nunca testei…
mas acho que da certo sim