我正在尝试使用JFileChooser
保存文件,但似乎遇到了一些问题。这是我的代码:
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());
}
}
这不会强制文件具有 .xml
扩展名,因此我尝试使用以下代码来强制该文件保存为扩展名为 .xml 的文件:
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter xmlWriter = null;
try {
xmlWriter = new XMLWriter(new OutputStreamWriter(
new FileOutputStream(f+".xml"), "UTF8"),
format);
然而,这样我就无法防止用户在JFileChooser
中写入xpto.xml
。如果他们这样做,文件将具有“两个扩展名”:它将成为一个名为xpto.xml.xml
的文件。
所以我的问题是:
- 如何使
JFileChooser
默认保存为xml文件? - 如果用户插入类似xpto.xml这样的文件名,我该如何将其保存为xpto.xml而不是xpto.xml.xml?
something.xml.xml.xml
这样的名称,程序应该如何反应。 - Pshemo+ ".xml"
放入文件名中的问题是,如果您重新打开该文件,则文件名将变为 fileName.xml.xml。 - Dan Pickard