Abrir arquivo

8 respostas
A

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

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);
			}
		}
	}

8 Respostas

aborges

Este arquivo foi escrito utilizando o ObjectOutputStream?

Ironlynx

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);

A

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?

danieldestro

Faça apenas:

InputStream entrada = new FileInputStream( nome );

A

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" ); } }

danieldestro

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();

A

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

danieldestro

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

Criado 21 de dezembro de 2004
Ultima resposta 21 de dez. de 2004
Respostas 8
Participantes 4