1. Files
sınıf
Dosyalarla çalışmak için kaygan bir yardımcı program sınıfı vardır — java.nio.file.Files
. Her durum için yöntemleri vardır. Bu sınıfın tüm metotları statiktir ve Path nesnesi üzerinde çalışır. Pek çok yöntem var, bu yüzden yalnızca en önemlilerini ele alacağız:
Yöntem | Tanım |
---|---|
|
Yolu olan yeni bir dosya oluşturur.path |
|
Yeni bir dizin oluşturur |
|
Birden çok dizin oluşturur |
|
Geçici bir dosya oluşturur |
|
Geçici bir dizin oluşturur |
|
Boşsa bir dosya veya dizini siler |
|
Bir dosyayı kopyalar |
|
Bir dosyayı taşır |
|
Yolun bir dosya değil de bir dizin olup olmadığını kontrol eder |
|
Yolun bir dizin değil de bir dosya olup olmadığını kontrol eder |
|
Verilen yolda bir nesne olup olmadığını kontrol eder |
|
Dosya boyutunu döndürür |
|
Bir dosyanın tüm içeriğini bir bayt dizisi olarak döndürür |
|
Bir dosyanın tüm içeriğini bir dize olarak döndürür |
|
Bir dosyanın tüm içeriğini bir dize listesi olarak döndürür |
|
Bir dosyaya bir dizi bayt yazar |
|
Bir dosyaya bir dize yazar |
|
Verilen dizinden bir dosya koleksiyonu (ve alt dizinler) döndürür |
2. Dosya ve dizin oluşturma
Dosya ve dizinlerin oluşturulması çok kolaydır. Bazı örneklerle kendimizi ikna edelim:
kod | Not |
---|---|
|
bir dosya oluşturur |
|
Bir dizin oluşturur |
|
Bir dizin ve yoksa gerekli tüm alt dizinleri oluşturur. |
3. Kopyalama, taşıma ve silme
Dosyaları kopyalamak, taşımak ve silmek de bir o kadar kolaydır. Bu aynı zamanda dizinler için de geçerlidir, ancak boş olmaları gerekir.
kod | Not |
---|---|
|
Bir dosyayı kopyalar |
|
Bir dosyayı taşır ve yeniden adlandırır |
|
Bir dosyayı siler |
4. Bir dosyanın türünü ve varlığını kontrol etme
Başkası tarafından sağlanan bir yolunuz olduğunda, bunun bir dosya mı yoksa dizin mi olduğunu bilmek istersiniz. Ve genel olarak böyle bir dosya/dizin var mı yok mu?
Bunun için de özel yöntemler var. Ayrıca bir dosyanın uzunluğunu kolayca öğrenebilirsiniz:
kod | Not |
---|---|
|
|
|
|
|
|
|
|
5. Dosya içerikleriyle çalışma
Son olarak, bir dosyanın içeriğini okumayı veya yazmayı kolaylaştıran bir dizi yöntem vardır. Örnek:
kod | Tanım |
---|---|
|
Dosyanın içeriğini bir dize listesi olarak okuyun. Dizeleri göster |
6. Bir dizinin içeriğini alma
En ilginç yöntem hala devam ediyor. Belirli bir dizindeki dosyaları ve alt dizinleri almak için kullanılır.
newDirectoryStream()
Özel bir nesne döndüren yöntemden bahsediyoruz DirectoryStream<Path>
. Belirli bir dizinin tüm dosyalarını ve alt dizinlerini almak için kullanabileceğiniz bir yineleyiciye(!) sahiptir.
Bu göründüğünden daha kolay.
kod | Tanım |
---|---|
|
Dosya listesiyle bir nesne alın Dosya listesi üzerinde döngü yapın |
Nesnenin DirectoryStream<Path>
iki özelliği vardır. İlk olarak, dosya yollarını döndüren bir yineleyiciye sahiptir ve bu nesneyi bir döngü içinde kullanabiliriz for-each
.
İkincisi, bu nesne bir veri akışıdır, bu nedenle yöntem kullanılarak açıkça kapatılmalı close()
veya bir try-with-resources
blok içinde kullanım bildirilmelidir.
7. Files.newInputStream
yöntem
Java 5'ten başlayarak, FileInputStream
ve FileOutputStream
sınıfları kullanımdan kaldırılmıştır. Dezavantajlarından biri, bu sınıfların nesneleri oluşturulduğunda, dosyaların hemen diskte oluşturulmasıydı. Ve dosya oluşturmayla ilgili tüm istisnalar potansiyel olarak atılabilir.
Daha sonra bunun en iyi karar olmadığı kabul edildi. java.nio.Files
Buna göre, dosya nesneleri oluşturmak için yardımcı program sınıfının yöntemlerinin kullanılması önerilir .
Dosya oluşturmaya yönelik eski yaklaşım ile yeni yaklaşım arasında bir karşılaştırma aşağıda verilmiştir:
Önce |
---|
|
Sonrasında |
|
Ve bunun için benzer bir değiştirme var FileOutputStream
:
Önce |
---|
|
Sonrasında |
|
GO TO FULL VERSION