java.io.RandomAccessFileBir close()yöntemi varken yok java.io.File. Neden? Dosya, sonuçlandırıldığında otomatik olarak kapanıyor mu?
Teşekkürler!
java.io.RandomAccessFileBir close()yöntemi varken yok java.io.File. Neden? Dosya, sonuçlandırıldığında otomatik olarak kapanıyor mu?
Teşekkürler!
Yanıtlar:
FileSınıfın javadoc'u sınıfı şu şekilde tanımlar:
Dosya ve dizin yol adlarının soyut bir temsili.
Filedosya sistemi (gibi exists()) ve dizin işlemeyle ilgili birkaç yöntemle birlikte bir yol adının yalnızca bir temsilidir, ancak gerçek akış girişi ve çıkışı başka bir yerde yapılır. Akışlar açılıp kapatılabilir, dosyalar açılamaz.
(Benim kişisel görüşüm, Sun'ın daha sonra yaratmaya devam RandomAccessFileetmesi ve tutarsız adlandırma ile çok fazla kafa karışıklığına neden olması oldukça talihsiz olduğudur.)
java.io.Fileaçık bir dosyayı temsil etmez , dosya sistemindeki bir yolu temsil eder. Bu nedenle üzerinde bir closeyönteme sahip olmak mantıklı değil.
Aslında bu sınıfa kütüphane yazarları tarafından yanlış isim verildi, buna benzer bir ad verilmeli Path.
Path.
Esasen rastgele erişim dosyası, rastgele erişimi yönetmek için girdi ve çıktı akışlarını sarar. Bir dosyayı açıp kapatmazsınız, bir dosyaya akışları açar ve kapatırsınız.
Bir BufferedReader açılıp kapatılabilir ancak bir Dosya asla açılmaz, sadece dosya sistemindeki bir yolu temsil eder.
Varsayalım ki, sahipsin
File f = new File("SomeFile");
f.length();
S'leri kapatmanıza gerek yoktur File, çünkü bu sadece bir yolun temsilidir.
Her zaman yalnızca okuyucuları / yazarları ve aslında akışları kapatmayı düşünmelisiniz.