Abrir arquivo

Pessoal tem como dar um help aqui…

Tipo eu tenho esta função que recebe um string com o path do aruivo como por exemplo “C:\temp\ip.txt” só que da uma exceção de java.io.StreamCorruptedException: invalid Stream header…

Como posso resolver??

[code] public void abreArq(String endereco)
{
File nome = new File(endereco);
if( nome == null || nome.getName().equals( “” ) ){
JOptionPane.showMessageDialog(null,“Usarei o ip padrão !”);
}
else
{
try {
entrada = new ObjectInputStream( new FileInputStream( nome ));
}
catch( IOException e )
{

			JOptionPane.showMessageDialog( null, "Erro ao obter IP !\n"+e );			
			System.exit(0);
		}
	}
}[/code]

Este arquivo foi escrito utilizando o ObjectOutputStream?

Não seria melhor gravar esse txt em um FileWriter???
Ou brinque com New IO(thanks Luca):

FileChannel channelIn = new FileInputStream("ip.txt").getChannel(); WritableByteChannel channelOut = Channels.newChannel(outputStream); channelIn.transferTo(0, channelIn.size(), channelOut);

Não… ele foi escrito a mão o conteúdo dele é só o endereço de ip “200.171.18.92”

Pois ele eh gerado pelo outro sistema, que só sabe gerar estes arquivos.

Tem como resolver este problema?

Faça apenas:

InputStream entrada = new FileInputStream( nome );

Ta e ai como eu faria a leitura??

Eu ja tinha feito isto…

public void ler() { try { msg = ( String ) entrada.readObject(); } catch( IOException e ){ fechaArq(); } catch( ClassNotFoundException c ) { JOptionPane.showMessageDialog( null, "Impossivel criar os objetos" ); } }

Melhor solução:

BufferedReader r = new BufferedReader(new FileReader("c:\\ip.txt")); String line = r.readLine(); r.close();

Outros métodos:

InputStream is = new FileInputStream("c:\\ip.txt"); byte buffer = new byte[512]; StringBuffer sb = new StringBuffer(); int i = -1; while( (i = is.read( buffer, 0, 1024 )) > 0 ) { sb.append( buffer, 0, i ); } is.close();

Eu tentei as duas soluções…

A melhor deu que ele não encontra o método .readLine(); e a outra não encontra o .class do byte ???

Ops, falha minha.
Eu arrumei o código. Olha lá de novo.
[ ]´s