Establecer la extensión de guardado predeterminada con JFileChooser
Estoy tratando de guardar un archivo usandoJFileChooser
. Sin embargo, parece que estoy teniendo algunos problemas con eso. Aquí está mi código:
if (e.getSource() == saveMenu) {
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
FileNameExtensionFilter xmlFilter = new FileNameExtensionFilter("xml files (*.xml)", "xml");
// add filters
chooser.addChoosableFileFilter(xmlFilter);
chooser.setFileFilter(xmlFilter);
int result = chooser.showSaveDialog(Simulation.this);
if (result == chooser.APPROVE_OPTION) {
writeToXML(chooser.getSelectedFile());
}
}
Esto no obliga al archivo a tener una.xml
extensión, por lo que he intentado usar el siguiente código para forzar que el archivo se guarde con la extensión .xml
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter xmlWriter = null;
try {
xmlWriter = new XMLWriter(new OutputStreamWriter(
new FileOutputStream(f+".xml"), "UTF8"),
format);
Sin embargo, con esto no puedo evitar que el usuario escribaxpto.xml
en elJFileChooser
y si lo hacen, el archivo tendrá "dos extensiones": será un archivo llamadoxpto.xml.xml
Así que mis preguntas son:
¿Cómo puedo hacer elJFileChooser
guardar un archivo xml por defecto?Si el usuario inserta un nombre de archivo como xpto.xml, ¿cómo puedo guardarlo como xpto.xml y no xpto.xml.xml?