Saltar al contenido

¿Cómo guardar un archivo usando JFileChooser?

Puede que se de el caso de que encuentres algún fallo en tu código o trabajo, recuerda probar siempre en un ambiente de testing antes aplicar el código al proyecto final.

Solución:

Finalmente, resolví mi propio problema:

JFileChooser fc = new JFileChooser("C:/");
fc.addChoosableFileFilter(new JPGSaveFilter());
fc.addChoosableFileFilter(new JPEGSaveFilter());
fc.addChoosableFileFilter(new PNGSaveFilter());
fc.addChoosableFileFilter(new GIFSaveFilter());
fc.addChoosableFileFilter(new BMPSaveFilter());
fc.addChoosableFileFilter(new WBMPSaveFilter()); 

int retrieval = fc.showSaveDialog(null);

if (retrieval == JFileChooser.APPROVE_OPTION) 
  String ext = "";

  String extension = fc.getFileFilter().getDescription();

  if (extension.equals("*.jpg,*.JPG")) 
    ext = ".jpg";
   else if (extension.equals("*.png,*.PNG")) 
    ext = ".png";
   else if (extension.equals("*.gif,*.GIF")) 
    ext = ".gif";
   else if (extension.equals("*.wbmp,*.WBMP")) 
    ext = ".wbmp";
   else if (extension.equals("*.jpeg,*.JPEG")) 
    ext = ".jpeg";
   else if (extension.equals("*.bmp,*.BMP")) 
    ext = ".bmp";
  

Filtro de ejemplo:

package example

import java.io.File;
import javax.swing.filechooser.FileFilter;

class JPGSaveFilter extends FileFilter 
  @Override
  public boolean accept(File f) 
    if (f.isDirectory()) 
      return false;
    

    String s = f.getName().toLowerCase();

    return s.endsWith(".jpg");
  

  @Override
  public String getDescription() 
    return "*.jpg,*.JPG";
  

Prepare los filtros del selector de archivos:

    jFileChooser.addChoosableFileFilter(new FileNameExtensionFilter("File X (.xxx)", "xxx"));
    jFileChooser.addChoosableFileFilter(new FileNameExtensionFilter("File Y (.yyy)", "yyy"));
    jFileChooser.addChoosableFileFilter(new FileNameExtensionFilter("File Z (.zzz)", "zzz"));

    // set default type
    jFileChooser.setFileFilter(jFileChooser.getChoosableFileFilters()[0]);

    // set default file
    jFileChooser().setSelectedFile(defaultFile);

Después de aprobar la validación

//Add extension to Selected file 
File file = new File(jFileChooser().getSelectedFile().getCanonicalPath() + "." + ((FileNameExtensionFilter) jFileChooser().getFileFilter()).getExtensions()[0]);

Podría ser una buena idea validar si el archivo seleccionado viene con extensión.

Si conservas alguna cuestión y capacidad de aclarar nuestro crónica eres capaz de dejar una anotación y con placer lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *