Caminho de arquivo texto

Iai pessual, blz?

tenho um aplicação terminada aki funcionando perfeitamente, ela acessa arquivos textos.

só que quando eu tento executar o arquivo .jar dele todas as telas q acessam os arquivos textos, não abrem, elas caem no catch que eu coloquei informando q num tem nda cadastrado.

Isso creio eu que é porque não estou passando o path corretamente.
segue por exemplo:

ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("src\\banco\\bancoClientes.txt"));

esse código funciona, mas funciona apenas executando pelo netbeans, e não pelo .jar.

lembrando que coloquei meus arquivos textos dentro da pasta src junto com as outras classes.
OBS: Fiz pelo netbeans.

Bom, oq eu queria era passar o caminho desse arquivo para que o .jar o enxergasse, ou um método ou um jeito, sei la, de pegar o caminho do arquivo de acordo com a maquina que eu rodar a aplicação.

Será q alguem pode me ajudar
vlw

vc ja tentou no lugar de usar \ como separador do caminho usar / ?

Você não tem que adicionar o caminho completo?

Quando eu uso, faço assim. Ou você define o caminho completo, ou pega o diretório no qual seu programa foi instalado e a partir dele incrementa com o caminho da sua pasta.

Eu faço assim e funciona.

No Windows seria:

ObjetoJFileChooser.setCurrentDirectory(new File( "C:\\Arquivos de programas\\Seu programa\\")); //ou ObjetoJFileChooser.setCurrentDirectory(new File( "C:\\Arquivos de programas\\Seu programa\\"+nomeCaminhoPasta)); //ou ObjetoJFileChooser.setCurrentDirectory(new File( caminhoRelativo+nomeCaminhoPasta));

Se eu entendi seu problema, acredito que deva funcionar.

Abraço.

iai pessual, vlw por responderem, mas…

quando ao 1º amigo q respondeu, usando as barras do jeito que eu to usando funciona bem, sem problemas, e quanto ao 2º, sim eu posso colocar o caminho completo, mas do jeito que eu coloquei tb funciona bem.

o meu problema é na hora de passar pra outro computador, por exemplo, se eu colocar o caminho completo, creio que o caminho do arquivo será diferente, portanto não o encontrará, mas ai seia só modificar todos os caminhos, q não será o caso, e sim eu teria que ter uma forma, um método, não sei, de pegar o caminho de acordo com o computador, ou fazer de uma forma que esse arquivo texto, possa ser “enxergado”, pelo .jar .

Alguem pode me dar uma força??

vlw

Por gentileza, voce sabe como resolver o exercício abaixo, sou iniciante e preciso entregar amanhã 16/10
Como faço para enviar para todos os usuários desse site.

Entrega em 16/10/07

  1. Faça um programa que leia nome e telefone de um número indeterminado de pessoas e grave em um arquivo txt. Depois leia o arquivo e imprima na tela o conteúdo que foi gravado.
1 curtida

vc precisa curiar objetos (serializar para por no arquivo), ou apenas gravar os dados?

olha eu sei resolver sim, mas agora to no trabalho e num tenho como dar uma força, mas em casa eu tenho algumas aplicações q usam arquivo txt, chegando, posso posta-la para ajudar vc.

flw

Olha, o normal é que ele pegue os diretórios a partir de onde vc estiver rodando seu jar (claro, isso no caso de não estar especificando o caminho todo como é seu caso).

Aqui fazemos assim:

“/src/banco/bancoClientes.txt”

Ou seja, a partir de onde está o seu jar ele vai entrar na pasta src/banco/

Tente pra ver se funfa… :wink:

para resolver seu caso eu armazenaria num bd o caminho do arquivo e acordo com o Sistema Operacional…

seria mais ou menos assim:

System.getProperty(“os.name”)

Se retornar Windows use as barras \

Se retornar diferente de Windows use /

Aí se vc não tiver um BD vc poderia criar um arquivo txt que armazene o caminho e q seja ligado a algum arquivo.

Giuliano, pro java eh indiferente ser windows ou linux… se vc usar apenas / reconhece nos 2… a jvm que se encarrega de saber em q sistema operacional ta usando

PcAbrantes desculpe cara mas sua afirmação não é verdadeira…

se vc gravar um arquivo num sistema operacional com Unix e salvar o caminho num BD vc não pode usar qualquer barra…uma é para windows e outra é para unix, linux

tenho plena certeza disso.

OBS: DESCULPE CARA A BARRA / FUNCIONA PRA AMBOS MESMO.

hum na verdade ele está certo sim, se você usar a barra para a direita / funciona nos dois

tenta rodar isso no windows

	public static void main(String[] args) {
		BufferedReader br = null;
		try {
			br = new BufferedReader(new FileReader("c:/meucaminho/meuaquivo.txt"));
			System.out.println(br.readLine());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		

	}

Ia pessual,

vlw pelos posts, vo seguir os consehos de vcs e ver se funcionam pra mim.

OBS: para a RenataFA:

isso que eu to fazendo:

ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("src\\banco\\bancoClientes.txt"));  

num adianta para o jar localizar o arquivo???..tem q usar as barras só do jeito que vc digitou??

um abraço!!

Bom, eu utilizo o getResourceAsStream
quando se trata de ler algo dentro de um arquivo jar.

Eu dei uma olhada que você está utilizando um OutputStream, no caso, você quer gravar um arquivo dentro de um jar ou ler? Eu acho que não tem como gravar um arquivo dentro de um jar nem alterá-lo.

Cara, oq eu quero é um jeito de pegar o caminho do arquivo e passa-lo pra esses obketos, eu to usando objetos de leitura e gravação e gostaria de não ficar alterando o caminho do arquivo toda vez q eu mudar de computador.

vlw

[quote=cs.santos0]Ia pessual,

vlw pelos posts, vo seguir os consehos de vcs e ver se funcionam pra mim.

OBS: para a RenataFA:

isso que eu to fazendo:

ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("src\\banco\\bancoClientes.txt"));  

num adianta para o jar localizar o arquivo???..tem q usar as barras só do jeito que vc digitou??

um abraço!![/quote]

Bom, eu uso “/” invés de “\” justamente pelo que todos já disseram: funciona pra linux e pra windows.

Agora, perceba que o que eu postei não é exatamente o que vc está fazendo. Eu coloquei uma barra ANTES do scr. Tente desta forma:

“/src/banco/bancoClientes.txt”

[quote]Bom, eu uso “/” invés de “\” justamente pelo que todos já disseram: funciona pra linux e pra windows.

Agora, perceba que o que eu postei não é exatamente o que vc está fazendo. Eu coloquei uma barra ANTES do scr. Tente desta forma:

“/src/banco/bancoClientes.txt” [/quote]

huum, vlw

vou tentar isso

um abraço

Mas onde você irá fazer a gravação? No arquivo que está dentro do jar? Ou o arquivo do jar servirá apenas de base para leitura de dados?

Caso você queira ler os dados de um arquivo dentro de um jar, use o método que postei antes.

Esqueci de um detalhe importante: Você não conseguirá acesso a um arquivo de dentro de um jar utilizando um FileInputStream ou um FileOutputStream.