Definir extensão de salvamento padrão com o JFileChooser
Estou tentando salvar um arquivo usandoJFileChooser
. No entanto, parece que estou tendo alguns problemas com isso. Aqui está meu 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());
}
}
Isso não força o arquivo a ter um.xml
extensão, então eu tentei usar o seguinte código para forçar o arquivo a ser salvo com a extensão .xml
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter xmlWriter = null;
try {
xmlWriter = new XMLWriter(new OutputStreamWriter(
new FileOutputStream(f+".xml"), "UTF8"),
format);
No entanto, com isso eu não posso impedir que o usuário escrevaxpto.xml
noJFileChooser
e se eles fizerem isso, o arquivo terá "duas extensões": será um arquivo chamadoxpto.xml.xml
Então minhas perguntas são:
Como posso fazer oJFileChooser
salvar um arquivo xml por padrão?Se o usuário inserir um nome de arquivo como xpto.xml, como posso salvá-lo como xpto.xml e não xpto.xml.xml?