2014-04-06 33 views
0
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); 
    } 
} 

這是我到目前爲止所做的。如果它已經創建,我可以用它來追加文件的任何想法?檢查文件是否存在,如果存在,請不要創建新文件並追加代替

+0

閱讀[如何檢查文件是否存在? (在Windows上的Java)](http://stackoverflow.com/questions/1816673/how-do-i-check-if-a-file-exists-java-on-windows) – Braj

+0

閱讀[如何將文本追加到在Java中的現有文件](http://stackoverflow.com/questions/1625234/how-to-append-text-to-an-existing-file-in-java) – Braj

+0

@Braj他正在使用一個ObjectOutputStream它不實現Appendable接口。 – Naili

回答

1

您首先要檢查文件是否存在,如果沒有創建新文件。要了解如何將對象附加到對象流,請查看此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); 
     } 
+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

相關問題