Ler arquivo .txt e jogar conteúdo em JTextArea

Boa tarde Galera!

To tentando colocar o texto contido em um arquivo *.txt em um JTextArea, só que me aparece o seguinte erro [color=red]A sintaxe do nome do arquivo, pasta ou nome do volume está incorreta[/color], o engraçado é que esta tudo correto aparentemente, se eu copiar o path do arquivo e abrir pelo windows explorer vai numa boa…
segue o código, se alguem puder da uma força ai…

private String path = new String(getClass().getResource("sobre/sobre.txt").toString());// o arquivo esta localizado na pasta bin/sobre/

tfSobre.setText(carregarTxtSobre(path));

private String carregarTxtSobre(String file) {
		try {
			File arquivo = new File(file);
			BufferedReader rd = new BufferedReader(new FileReader(file));
			StringBuffer sb = new StringBuffer();

			String linha;
			while ((linha = rd.readLine()) != null) {
				sb.append(linha);
			}
			rd.close();
			return sb.toString();
		} catch (IOException e) {
			return e.getMessage();
		}
	}

cara,

vc ja tentou assim,

getResource("/sobre/sobre.txt")

Então cara, já tentei sim, mas não funcionou também, passa uma NullPointerException, ou seja com o / antes da pasta ele nem ta encontrando a própria pasta!

Valeu pela ajuda…
mais algum palpite???

[quote=decomaxkatsu]

[code]
private String path = new String(getClass().getResource(“sobre/sobre.txt”).toString());// o arquivo esta localizado na pasta bin/sobre/
//Tenta assim
String path = new String(getClass().getResource(“sobre.txt”).getPath().toString());// o arquivo esta localizado na pasta bin/sobre/

[/code][/quote]
Flw

Lembrando que o arquivo txt, necessita esta no mesmo diretório da sua classe java

Mesma coisa brother… retornando o mesmo erro no catch [color=red]A sintaxe do nome do arquivo, pasta ou nome do volume está incorreta [/color]

Putz… o arquivo txt esta no mesmo pacote que sua classe java?

bem, o getClass vc usa para quando o .txt esta em um pacote se naum se o caminho direto

veja.

//caminho no SO
File f = new File("/windows/system32/arquivo.txt");
System.out.println(f.exists()); //retorna true se existir o arquivo ou false se naum existir

//caminho no package
File f = new File(getClass().getResource("/pacote/arquivo.txt").toUrl());
System.out.println(f.exists());

Para ler use Scanner e jogue o resultado numa StringBuffer e printa ela como toString();

t+ e boa sorte

diego.sas: Ta sim maninho, mas continua dando o erro.

fernandopaiva : Como respondi pro diego.sas, ta no mesmo pacote, eu utilizei a mesma lógica nesse mesmo sistema pra fazer leitura de icones, os icones estando numa pasta chamada “IMG”, e os txt em um chamada “sobre”.

Exemplo com a imagem

this.icone = new ImageIcon(getClass().getResource("img/inicial.jpeg")); this.setIcon(icone);

Brother criei a mesma estrutura que vc ak.
Ocorre o mesmo erro devido.

// Como vc esta fazendo. É incluso file:/ antes do caminho do seu arquivo assim gerando o erro.
String path = new String(getClass().getResource("sobre.txt").toString());


// Fiz assim e funfou... rs  Inclui o .getPath antes do .toString... Assim ele pega o caminho correto

String path = new String(getClass().getResource("sobre.txt").getPath().toString());

Vou testar e já posto…

Thank’s 8)

Puts mano, fiz como você sugeriu e ainda não ta dando certo… agora a msg de erro é a seguinte [color=red]O sistema não pode encontrar o caminho especificado[/color].
Fiz da seguinte maneira:

private String path = new String(getClass().getResource("sobre/sobre.txt").getPath().toString());

E assim?

private String path = new String(getClass().getResource("sobre.txt").getPath().toString());

Mesma coisa Cara… :evil:

Cara então realmente não sei o que pode ser!
Criei um projeto ak, com a mesma estrutura que vc, e o engraçado é que aqui funciona.

Detalhe…
O arquivo txt, precisa estar na mesma estrutura de diretorio do seu projeto.

No meu caso…
C:\Desenvolvimento\workspace_pessoal\GUJ\bin\br\com\console\sobre\sobre.txt.

Vi que voce esta colocando direto no bin\sobre.
Da uma olhadinha nesta estrutura.

Não não cara… ali quando coloquei o bin, era só pra ilustrar que tava na pasta do projeto, mas ta certo sim, eu criei uma subpasta na pasta do projeto chamada sobre, e nesta pasta coloquei o txt.

C:\Documents and Settings\anderson.souza\Meus documentos\Java\Campo Minado\bin\cc\marques\fzdev\Jogo\sobre

De qualquer forma obrigado pela ajuda Brother!