检查文件是否存在,如果存在,则不要创建新文件并添加

时间:2014-04-06 14:03:07

标签: java file append

private void saveFormActionPerformed(java.awt.event.ActionEvent evt) {
    name = nameFormText.getText();
    surname = surnameFormText.getText();
    age = Integer.parseInt(ageFormText.getText());
    stadium = stadiumFormText.getText();

    Venues fix = new Venues();
    fix.setName(name);
    fix.setSurname(surname);
    fix.setAge(age);
    fix.setStadium(stadium);

    File outFile;
    FileOutputStream fStream;
    ObjectOutputStream oStream;

    try {
        outFile = new File("output.data");
        fStream = new FileOutputStream(outFile);
        oStream = new ObjectOutputStream(fStream);
        oStream.writeObject(fix);
        JOptionPane.showMessageDialog(null, "File written successfully");
        oStream.close();
    } catch (IOException e) {
        System.out.println(e);
    }
 }   

这是我到目前为止所拥有的。如果已经创建了文件,我可以用它做什么来附加文件?

2 个答案:

答案 0 :(得分:2)

使用Java 7,很简单:

final Path path = Paths.get("output.data");
try (
    final OutputStream out = Files.newOutputStream(path, StandardOpenOption.CREATE,
        StandardOpenOption.APPEND);
    final ObjectOutputStream objOut = new ObjectOutputStream(out);
) {
    // work here
} catch (IOException e) {
    // handle exception here
}

放弃File

答案 1 :(得分:1)

如果没有创建新文件,您首先要检查文件是否存在。要了解如何将对象附加到objectstream,请查看此question

        File outFile = new File("output.data");
        FileOutputStream fStream;
        ObjectOutputStream oStream;
        try {
            if(!outFile.exists()) outFile.createNewFile();
            fStream = new FileOutputStream(outFile);
            oStream = new ObjectOutputStream(fStream);
            oStream.writeObject(fix);
            JOptionPane.showMessageDialog(null, "File written successfully");
            oStream.close();
        } catch (IOException e) {
            System.out.println(e);
        }