Bu soru this sorunun Şiddetli bir kopyası farkındayım. Ancak, şimdi tüm bu sayfayı iki kez okudum, ve bazı bölümler 3 kez, ve benim için nasıl cevaplandığını göremiyorum!Java 6 Dosya Silme
Sorunum açık.
İş yerindeyim ve Java 6 SE kullanarak sıkışıp kaldım ve 7'ye yükseltemiyorum. Bir dosya oluşturan, yazan, bazı işlemleri yapan ve sonra da dosyanın varlığını silmeye ihtiyaç duyan bir program yazıyorum. Ben yukarıda başvuruda bulunduğum soruyu soran kişi ile aynı problemi yaşıyorum: Java dosyayı silmeyecek ve nedenini anlayamıyorum.
kodu: Herhangi throwables, hata veya istisnalar atma değil
File f = null;
FileWriter fw = null;
try
{
f = new File("myFile.txt");
fw = new FileWriter(f);
fw.write("This is a sentence that should appear in the file.");
fw.flush();
if(f.delete())
System.out.println("File was successfully deleted.");
else
System.err.println("File was not deleted.");
}
catch(Exception exc)
{
System.err.println(exc.getMessage());
}
catch(Error er {
System.err.println(er.getMessage());
}
catch(Throwable t)
{
System.err.println(t.getMessage());
}
finally
{
fw.close();
}
(I herhangi ve tüm sınır durumları ekarte etmek olanlar dahil). İkinci yazdırma bildirimi ("File was not deleted."
) konsola yazdırılıyor. Bunu Windows 7'de çalıştırıyorum ve tam izinlerim (rwx) bulunan bir klasöre yazıyorum.
Onun kendi soru cevap başvurulan soruyu soran kullanıcı, ancak bunu (benim düşünceme göre) bir çok da düz ileri şekilde değil. Her halükarda, bunu anlamayı güçleştiriyorum. O, bir 'un aksine bir BufferedReader
kullanmanın onun için farkı yarattığı gerçeğine itiraz ediyor gibi görünüyor, ancak bunun nasıl olduğunu görmüyorum.
Java 7, bu sorunları bir java.nio.file.Files
sınıfının tanıtımıyla düzeltmiş görünüyor, ancak yine de, denetimimin kapsamı dışındaki nedenlerden dolayı Java 7'yi kullanamıyorum.
Bu başvurulan soruya verilen diğer yanıtlar, bunun Java'da bir "hata" olduğunu ve System.gc()
'u açıkça arama gibi her türlü atlatmayı sağladığını ima eder. Bunların hepsini denedim ve çalışmazlar.
Belki birisi yeni bir bakış açısı katmak ve benim için biraz düşünün koşu yapabilirsiniz.
Bunun bir kopyası olduğunu sanmıyorum. Önerilen çözümleri diğer sorudan denediniz ve yardım etmediklerinden, sebebin farklı olması muhtemeldir. – finnw
İlk önce kapatın. Ve ... "Java 6 kullanarak takıldınız mı?" JDK7 üzerinde çalışan tek bir şirket bilmiyorum. 1.4 ve 1.5’te olanları biliyorum. Kendini şanslı say. –
Lütfen söylediğiniz şeyin tam tersini not edin: BufferedReader yerine FileInputStream kullanmak, diğer gönderide kullanıcı için çalışılan şeydir. Neden olduğu konusunda, bazı yorumlarda Java'daki bir hata var. –