java.io.RandomAccessFile
Bir 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.RandomAccessFile
Bir 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:
File
Sınıfın javadoc'u sınıfı şu şekilde tanımlar:
Dosya ve dizin yol adlarının soyut bir temsili.
File
dosya 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 RandomAccessFile
etmesi ve tutarsız adlandırma ile çok fazla kafa karışıklığına neden olması oldukça talihsiz olduğudur.)
java.io.File
açık bir dosyayı temsil etmez , dosya sistemindeki bir yolu temsil eder. Bu nedenle üzerinde bir close
yö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.