Manipulação de Arquivos [Resolvido]

7 respostas
BooT_SJRP

Boa tarde galera.
Estou construindo um projeto em que em uma tela de cadastro o usuario abre um jFileChooser e seleciona uma imagem, feito isso eu copio a imagem para uma pasta dentro do projeto. Mas não consigo fazer a cópia, gera um erro que não consigo resolver. Se puderem me dar uma mão. Segue o código.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        /*
         * Botão onde abre o seletor de arquivos para selecionar a imagem que sera 
         * inserida no projeto
         */
        
        JFileChooser chooser = new JFileChooser();
        chooser.setFileFilter(filtro);
        
        int resultado = chooser.showOpenDialog(null);

        if (resultado == JFileChooser.APPROVE_OPTION) {

            //INSTANCIA DO SELETOR DE ARQUIVOS
            File arquivo = chooser.getSelectedFile();
            //CAMINHO DO ARQUIVO SELECIONADO
            String url = arquivo.getAbsolutePath();
            //SALVA A IMAGEM SELECIONADA NA VARIAVEL
            ImageIcon image = new ImageIcon(chooser.getSelectedFile().getPath());
            //ATRIBUI A IMAGEM AO LABEL
            jLabel2.setIcon(new ImageIcon(image.getImage().getScaledInstance(jLabel2.getWidth(), jLabel2.getHeight(), Image.SCALE_DEFAULT)));

            jLabelCaminho.setText(url);
            File copia = new File("./src/imagens/");
            
            try {                
                copiar(arquivo);
            } catch (IOException ex) {
                Logger.getLogger(fileChooser.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

E aqui o metodo onde deveria fazer a cópia da imagem

public void copiar(File fonte)throws IOException {
        try {
            
            FileChannel in = new FileInputStream(fonte).getChannel();
            FileChannel out = new FileOutputStream("./src/imagens/").getChannel();                    
            out.transferFrom(in, 0, in.size());

            in.close();
            out.close();

        } catch (IOException ex) {
            System.out.println("Erro: " + ex);
        }
    }

Gera o seguinte erro: java.io.FileNotFoundException: .\src\imagens (Acesso negado)

7 Respostas

M

Já tentou mudar o caminho de destino, me parece ser o mesmo da origem.

BooT_SJRP

Ja sim, Murilo, tentei salvar direto no C: e tambem nos Meus Documentos. Gera o mesmo erro.

A

Acredito q o Java não está conseguindo acessar o caminho "./src/imagens/"

BooT_SJRP

Andre, criei esta pasta dentro do diretorio pra colocar a copia da imagem, pra depois ser utilizada pelo sistema.
Ja tentei salvar em outros caminhos, mas tambem deu erro.

M

Tente fazer da seguinte forma.

public void copiar() {
          File f1 = new File("C:/teste/imagem.jpg");
          File f2 = new File("C:/teste/imagemCopiada.jpg");

          InputStream in = new FileInputStream(f1);
          OutputStream out = new FileOutputStream(f2);

          byte[] buf = new byte[1024];
          int len;
          while ((len = in.read(buf)) > 0){
            out.write(buf, 0, len);
          }

          in.close();
          out.close();

          System.out.println("Arquivo copiado.");
}
BooT_SJRP

Murilo, deu certo.

Obrigado.

M

Blz, só muda o tópico para [RESOLVIDO]

Criado 20 de março de 2013
Ultima resposta 20 de mar. de 2013
Respostas 7
Participantes 3