在Java Swing中保存文件时检查文件是不是存在
Posted
技术标签:
【中文标题】在Java Swing中保存文件时检查文件是不是存在【英文标题】:Checking if file exists when saving file in Java Swing在Java Swing中保存文件时检查文件是否存在 【发布时间】:2014-10-26 04:51:36 【问题描述】:所以,我在 Java 中保存 XML 数据。我允许用户选择路径和名称。现在,如果文件已经存在,我想用一条消息提示他们:“你想覆盖当前文件吗?”无论如何我可以做到这一点吗?谢谢
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setApproveButtonText("Save");
chooser.setDialogTitle("Save");
FileFilter filter = new FileNameExtensionFilter("XML File",
new String[] "xml" );
chooser.setFileFilter(filter);
chooser.addChoosableFileFilter(filter);
int r = chooser.showOpenDialog(this);
if (r == JFileChooser.APPROVE_OPTION)
try
JAXBContext jaxbContext = JAXBContext.newInstance(Shapes.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
File XMLfile = new File(chooser.getSelectedFile().toString()
+ ".xml");
jaxbMarshaller.marshal(myShapes, XMLfile);
catch (JAXBException e)
e.printStackTrace();
【问题讨论】:
【参考方案1】:Java 变量名以小写字母开头。如果我理解你的问题,那么是的,你可以使用 File.exists()
之类的东西
File xmlFile = new File(chooser.getSelectedFile().toString()
+ ".xml");
if (xmlFile.exists())
int response = JOptionPane.showConfirmDialog(null, //
"Do you want to replace the existing file?", //
"Confirm", JOptionPane.YES_NO_OPTION, //
JOptionPane.QUESTION_MESSAGE);
if (response != JOptionPane.YES_OPTION)
return;
【讨论】:
【参考方案2】:boolean fileExists = new File("file.xml").exists();
测试此抽象路径名表示的文件或目录是否存在。
返回:
true
当且仅当此抽象路径名表示的文件或目录存在; false
否则。
始终先检查javadocs!
【讨论】:
以上是关于在Java Swing中保存文件时检查文件是不是存在的主要内容,如果未能解决你的问题,请参考以下文章