【发布时间】:2013-06-05 07:51:48
【问题描述】:
我正在尝试使用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这样的名称,程序应该如何反应。 -
放 ` + ".xml"` 的唯一问题是,如果您重新打开该文件,那么它将是 fileName.xml.xml
标签: java swing save jfilechooser