2016-04-09 36 views
-2

programımın zaten orada bulamazsa bir dosya oluşturur, böylece bunu yapmak için nasıl merak ediyorum?FileNotFoundException nasıl önlenir?

public void load() throws Exception { 
    try 
     { 
     File log = new File(FILE_NAME); //opens the file 
     FileInputStream fileIn = new FileInputStream(log); 
     ObjectInputStream in = new ObjectInputStream(fileIn); //de-serializes 
     videosList = (ArrayList)in.readObject(); // de-serializes 
     in.close(); //closes the file 
     fileIn.close(); 
     } catch(Exception i) 
     { 
     i.printStackTrace(); 
     } 

Ve bu alıyorum hatadır: programım da bir GUI programıdır çünkü orada

java.io.FileNotFoundException: Users/hanaezz/Desktop/output.ser (No such file or directory) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(FileInputStream.java:195) 
    at java.io.FileInputStream.<init>(FileInputStream.java:138) 
    at videostore.BinaryFile.load(BinaryFile.java:31) 
    at videostore.VideoStore.<init>(VideoStore.java:33) 
    at videostore.VideoStore$6.run(VideoStore.java:430) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) 
    at java.awt.EventQueue.access$500(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:709) 
    at java.awt.EventQueue$3.run(EventQueue.java:703) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 

Tüm ilave şeyler. Sonra da bir dosyaya benim nesneyi yazmak gerekiyor bir yöntem ...

public void writeToFile() throws Exception{ 
     FileOutputStream outputStream = new FileOutputStream(FILE_NAME); 
     ObjectOutputStream oos = new ObjectOutputStream(outputStream); 
     oos.writeObject(videosList); 
     oos.close(); 
     outputStream.close(); 
     } 

Aynı durum atar var. Bundan nasıl kurtulabilirim? Ben bunu bulamayan dosyası oluşturmak için FIS/OIS nasıl değiştirileceğini emin değilim .. yoksa ben FOS/OOS yerine bunu yapmak için daha verimli olacaktır herhalde?

+2

Err, varolmayan bir dosyayı açmaya çalışma. Bu durumda, dosya adında bir '' '' '' '' '' '' 'eksik '' gibi görünüyorsunuz. – EJP

+1

Olası çoğaltılabilir [kontrol dosyası var java] (http://stackoverflow.com/questions/1237235/check-file-exists-java) – Ducaz035

+0

@ Ducaz035 Kesinlikle değil. Bu mevcut bir dosyaya ekleme ile ilgili. – EJP

cevap

1
Users/... 

Dosya adına lider / eksik. Yani onu yaratamazsın, o yüzden okuyamazsın.

+0

Cevabınızı daha fazla çalışma koduyla detaylandırabilir misiniz –

+0

@Suganthan Şaka yapıyorsunuz, değil mi? Bir dosya adına nasıl bir '' '' '' '' '') ekleyeceğinizi bilmiyor musunuz? – EJP

+0

Ama kullanıcı kodu yok değil mi ..? –

İlgili konular