seguinte tenho a linha
arquivo = jf.getSelectedFile().getAbsolutePath() ; essa linha me retorna
C:\teste\imagem.gif
e eu presiso usar a string arquivo aqui
String filename = arquivo; C:\teste\imagem.gif nao funciona
DataSource source = new FileDataSource(filename);
nao funciona devido a \ o certo teria que ser assim
String filename = "C:\teste\imagem.gif"; aqui funciona
DataSource source = new FileDataSource(filename);
alguem ajuda ai a alterar \ por \ ????????
[quote=fabiodurgante][code]
seguinte tenho a linha
arquivo = jf.getSelectedFile().getAbsolutePath() ; essa linha me retorna
C:\teste\imagem.gif
e eu presiso usar a string arquivo aqui
String filename = arquivo; C:\teste\imagem.gif nao funciona
DataSource source = new FileDataSource(filename);
nao funciona devido a \ o certo teria que ser assim
String filename = "C:\teste\imagem.gif"; aqui funciona
DataSource source = new FileDataSource(filename);
alguem ajuda ai a alterar \ por \ ???
[/code][/quote]
Vc pode usar tanto \ como / exemplo C:/diretoritorio/etc
Vc tem q utilizar duas barras, pq o java utiliza a barra para caracteres especiais como pular linha
“\n” por isso da \
falow
Voce pode utilizar o metodo replaceAll da classe String:
filename = arquivo.replaceAll("\", "/");
Valeu
Se o seu comando ‘getSelectedFile().getAbsolutePath()’ já retorna uma String assim: ‘C:\algo\sei lá’ então não precisa usar replace nenhum. O replace só é necessário quando a String aparece no código fonte da classe, digitada pelo programador. Em outros casos, a JVM faz o tratamento interno de caracteres de escape, por exemplo. Se o seu comando, com um System,out.println, lhe retorna a seguinte String:
“Olá mundo”
(com aspas)
Teríamos o mesmo resultado de digitar no fonte:
String nome = "\"Olá mundo\"";
Mas nesse caso, nenhum replace é preciso. Conseguiu entender?
arquivo.replaceAll("/","\")); assim funciona mas nao é bem isso q eu quero
arquivo.replaceAll("\","\")); tem q ser assim mas da erro
unclosed string literal
usando replace nao da certo
ate aqui na pagina da erro nao ficou como STRING !!!!
Use assim:
arquivo.replaceAll("\", "\\");
O que acontece é que \ é um caractere especial. Com ela se faz sequencias como \n, \t, \r. Para usar uma única \ numa string, vc tem que usar \. Mas isso só vale para strings literais, ou seja, para aquelas criadas com aspas.
Para uma string obtida através de um método (como o getAbsolutePath()) a \ é uma letra qualquer. Até pq, os simbolos que ela representa (um tab no caso do \t, por exemplo) já estão traduzidos e inseridos dentro da string.
Agora, tenho a forte impressão de que não é esse o seu problema. Queria saber porque vc diz que não funciona, e porque você acha que é por causa da \ ?
Do jeito que você fez, deveria funcionar sem o comando replace.
Quem sabe esta lista lhe ajude.
+-------------------+------------------+
| Character | Escape Sequence |
+-------------------+------------------+
| Backslash | \ |
| Backspace | \b |
| Carriage return | \r |
| Double quote | \" |
| Form feed | \f |
| Horizontal tab | \t |
| New line | \n |
| Octal character | \DDD |
| Single quote | |
| Unicode character | \uHHHH |
+-------------------+------------------+