java - 在 Java Swing 中保存文件时检查文件是否存在

标签 java swing save

因此,我正在用 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();
        }
    }
}

最佳答案

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;
    } 
}

关于java - 在 Java Swing 中保存文件时检查文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26569921/

相关文章:

java - 在生成的 TextView 上以编程方式设置边距时出错

java - 覆盖 JComponent.getBaselineResizeBehavior() 但保持 Java5 兼容性

Java Swing : alignment of right element in JSplitPane

node.js - 如何将变量流式传输到文件 Node JS?

php - 将 mp3 文件合并为一个,然后使用 php 保存在一个文件夹中

java - 使用网络代理时 Hibernate 插入两次

java - 没有可用的 'org.springframework.data.rest.core.util.Java8PluginRegistry' 类型的合格 bean

python - 如何将 astropy 表的标题和单位保存到 ascii 文件中

java - JodaTime 中格式错误的时区

java - 如何在没有按钮的情况下主动(立即)检查 JFrame 表单中文本框的值?