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