Erro com String no método replace

Desenvolvo um sistema para locadora e no cadastro de clientes tenho um botão que desejo utilizar para a inserção de fotos, que serão buscadas no sistema (windows), que possui o seguinte código.

[code]private void fotojButtonActionPerformed(java.awt.event.ActionEvent evt) {
String foto = “”;
final JFileChooser fc = new JFileChooser();
int returnVal = fc.showOpenDialog(teste = new javax.swing.JFrame());
arquivo_foto = fc.getSelectedFile();
nome_arquivo_foto = arquivo_foto.getName();
nome_arquivo_foto = " “+fc.getCurrentDirectory()+”\"+nome_arquivo_foto+" “;
String sqlinserir = “Update Clientes set foto = ? Where idClientes = ?”;
if (nome_arquivo_foto.contains(”\"))
foto = nome_arquivo_foto.replace(’\’ ,’/’);
//foto = “C:/Users/Cleyton/Pictures/teste.jpg”;
try
{
con_clientes.inserir_foto(sqlinserir, foto, codigojTextField.getText());
JOptionPane.showMessageDialog(null, “Foto inserida com sucesso!”);
} catch (FileNotFoundException ex) {
Logger.getLogger(Clientes.class.getName()).log(Level.SEVERE, null, ex);
}

} [/code]

con_clientes.inserir_foto(sqlinserir, foto, codigojTextField.getText()); É um metodo que criei dentro da minha classe de Conexão com o Mysql.
onde possui três argumentos que são: primeio o sql a ser alterado, segundo o caminho da foto e terceiro a Id do cliente.
As minhas variaveis string arquivo_foto e nome_arquivo_foto são variáveis globais dentro da classe cadastro de clientes…
Aqui segue o meu método inserir dentro da minha classe de conexão…

public void inserir_foto(String sqlupdate, String arquivo_foto, String id) throws FileNotFoundException { try { JOptionPane.showMessageDialog(null,arquivo_foto); System.out.println(arquivo_foto); int ind; ind = Integer.parseInt(id); ps = conexao.prepareStatement(sqlupdate); File image = new File(arquivo_foto); FileInputStream fis = new FileInputStream(image); ps.setInt(2, ind); ps.setBinaryStream(1,fis,(int)image.length()); ps.executeUpdate(); } catch(SQLException erro) { JOptionPane.showMessageDialog(null,"Não foi possivel iserir a foto o erro foi: " + erro + "\nO sql passado foi: " + sqlupdate); } }

O meu grande problema é que quando eu utilizo o metodo replace ou replaceAll para substituir o C:\Users\Cleyton\Pictures\imagem_mysql.jpg para
C:/Users/Cleyton/Pictures/imagem_mysql.jpg acontece o inusitado.
Aparentemente o replace funciona pois utilizo o metodo JOptionPane.showMessageDialog(null,arquivo_foto);, para visualizar a string alterada e nesse metodo ele consta como alterada mas quando o metodo inserir_foto pega essa string e cria o arquivo File da um erro…
E o retorno desse erro e que o caminho da imagem antes de ser alterada como se o replace nao tivesse funcionado…
Se eu descomentar a linha //nome_arquivo_foto = “C:/Users/Cleyton/Pictures/teste.jpg”; o força a regravação na string o meu método inserir_foto fuinciona
corretamente… Porém não é o interessante porque ai não justifica utilizar o JFileChooser para buscar a foto no sistema, e ficaria inserindo só uma imagem…

[quote]Detalhes do erro
C:/Users/Cleyton/Pictures/teste.jpg //Aqui é a impressão da string arquivo_foto dentro do método inserir na linha 06
30/03/2009 08:58:00 locadora.Clientes fotojButtonActionPerformed
SEVERE: null
java.io.FileNotFoundException: C:\Users\Cleyton\Pictures\teste.jpg (A sintaxe do nome do arquivo, pasta ou nome do volume está incorreta)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:106)
at locadora.Conexao.inserir_foto(Conexao.java:8
at locadora.Clientes.fotojButtonActionPerformed(Clientes.java:1012)
at locadora.Clientes.access$1200(Clientes.java:24)
at locadora.Clientes$13.actionPerformed(Clientes.java:520)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:231
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 1 minuto 21 segundos)[/quote]

Alguém poderia me ajudar?

1° poste o código entre as tags [ code ] e [ / code ](Sem espaços) para facilitar a leitura.

Depois nós vemos.

Primeiro: Bem-vindo ao GUJ.

Segundo: Leia este tópico: http://www.guj.com.br/posts/list/50115.java
Terceiro: Como cita no link acima, procuro colocar o seu código dentro das tags code facilita a legibilidade e leitura do seu código, bem como um entendimento mais fácil por parte de quem está lendo. Logo, sua dúvida tem mais chances de ser esclarecida.

Quarto: Você já tentou fazer um debug do seu código? Pode ser a solução do teu problema…

:thumbup:

Obrigado pelas dicas Mark_Ameba and fernandoeick!!!
Quanto a depuração eu ja fiz sim, mas o problema continua…

Tu já tentou fazer sem o replace e no final onde tu coloca uma \ colocar uma /.
No windows o padrão é: …/dir/dir… no linux é …\dir\dir…

Obrigado Gerson!!!
Não porque o método getCurrentDirectory do JFileChooser me retorna a pasta onde se encontra o arquivo da seguinte forma
C:\Users\Cleyton\Pictures

A unica forma que eu consegui inserir no Banco de Dados foi descomentando a linha 11 do método
private void fotojButtonActionPerformed(java.awt.event.ActionEvent evt. Porém fazendo isso eu sempre vou inserir a mensma foto
e não terei com procurar outra foto, como por exemplo em outra unidade ou pendriver, etc…

Cleyton008Obrigado Gerson!!!
Não porque o método getCurrentDirectory do JFileChooser me retorna a pasta onde se encontra o arquivo da seguinte forma
C:\Users\Cleyton\Pictures

A unica forma que eu consegui inserir no Banco de Dados foi descomentando a linha 11 do método
private void fotojButtonActionPerformed(java.awt.event.ActionEvent evt. Porém fazendo isso eu sempre vou inserir a mensma foto
e não terei com procurar outra foto, como por exemplo em outra unidade ou pendriver, etc…
Então o problema continua pessoal!

[color=darkblue]Obriado a todos pelas contribuições!!!
Com este erro já batalhava a algum tempo e descobri algo novo que não sabia…
pois para funcionar tive que corrigir um erro do método (String).replace.
Esse método após a alteração ele adiciona no início da strinca na posição string[0] um caracter vazio ou em branco…
então para corrigir esse erro é nescessário utilizar o seguinte código ou algum semelhante.[/color]

if (nome_arquivo_foto.contains("\\")) foto = nome_arquivo_foto.replace('\\' ,'/'); foto = nome_arquivo_foto.substring(1, nome_arquivo_foto.length());