Java'da Dosya İşleme: Java Dosyalarıyla Nasıl Çalışılır?
Yayınlanan: 2021-03-12Java oldukça popüler bir programlama dilidir. Sağlam mimarisi ve bileşenlerinin yanı sıra , başarısının ve popülaritesinin arkasındaki en önemli nedenlerden biri, çok sayıda işlevi desteklemesidir. Java'da dosya işleme, dosyalarla çalışmamıza izin veren böyle bir işlevdir. Bugün Java'da dosya kavramları ile yapabileceğimiz çeşitli işlemleri öğreneceğiz .
İçindekiler
Java Dosya İşleme Nedir?
Belirtildiği gibi, Java'da dosya işleme, dosyalarla çalışmanıza izin verir. Java.io paketinin File sınıfında tanımlanan bir Java işlevidir. Java.io paketindeki io, Girdi ve Çıktı anlamına gelir. Java.io paketinde herhangi bir giriş veya çıkış işlemi gerçekleştirmek için ihtiyaç duyacağınız tüm sınıfları bulacaksınız.
Bir nesne oluşturarak ve dosya veya dizin adını sağlayarak çeşitli işlevleri gerçekleştirmek için bu File sınıfına erişebilir ve onu kullanabilirsiniz. Bir nesne oluşturmak ve File sınıfını kullanmak için sözdizimi şöyledir:
java.io.File'ı içe aktarın;
Dosya nesnesi = yeni Dosya(“ad.txt”);
Yukarıdaki sözdiziminde görüldüğü gibi, önce Java.io paketinden File sınıfını içe aktarmanız gerekir. İçe aktarıldıktan sonra tek yapmanız gereken bir nesne oluşturmak ve birlikte çalışmak istediğiniz dosya veya dizin adını belirlemektir. Windows işletim sisteminde dizin adından bahsetmek için “\\” kullanmanız gerekir. Örneğin, “ C:\Users\\MyFolder\\MySubFolder ” kullanmanız gerekir ve “ C:\Users|MyFolder|MySubFolder ” değil. Ancak, Linux gibi diğer işletim sistemleri için tekli \'yi her zamanki gibi kullanabilirsiniz.
Java'daki dosya kavramlarının tüm G/Ç (Giriş/Çıkış) işlemleri bir akış yardımıyla yapılır. Akışın ne olduğunu derinlemesine inceleyelim ve bu işlemler onunla nasıl gerçekleştirilir?
Java'da Akış Kavramı Nedir?
Daha basit bir ifadeyle, akış bir dizi veridir. İki tür akış vardır, bunlar:
- Bayt akışı : Bu tür akış, bayt verileriyle çalışır. G/Ç işlemleri, bayt (8 bit) biçiminde veri okuduğunuzda veya yazdığınızda bir bayt akışıyla gerçekleştirilir.
- Karakter akışı : Bu tür akış, karakter dizisiyle çalışır. G/Ç işlemleri, karakterleri kullanarak veri okurken veya yazarken bir karakter akışıyla gerçekleştirilir.
Ödeme: GitHub'daki En İyi Java Projeleri
Java'da Dosya İşleme için Kullanılabilen Farklı Yöntemler Nelerdir?
File sınıfı, tüm G/Ç işlemlerini yalnızca çağırarak gerçekleştirmenize yardımcı olacak önceden tanımlanmış çeşitli yöntemler sağlar. Aşağıdaki tablo, gerçekleştirdikleri eylemlerle birlikte tüm yöntemleri gösterir.
Yöntem | Tip | Tanım |
canOku() | Boole | Dosyayı okuyup okumadığınızı kontrol eder. |
yazabilir() | Boole | Dosyaya yazıp yazamayacağınızı test eder. |
oluşturYeniDosya() | Boole | Bu yeni bir boş dosya oluşturacaktır. |
silmek() | Boole | Bu yöntem belirtilen dosyayı siler. |
var() | Boole | Bahsedilen dosyanın var olup olmadığını kontrol eder. |
getName() | Sicim | Dosyanın adını döndürür. |
getMutlakYol() | Sicim | Dosyanın mutlak yol adını döndürür. |
uzunluk() | Uzun | Dosyanın boyutunu bayt olarak döndürür. |
liste() | Sicim[] | Dizinde bulunan dosya adlarının bir listesini döndürür. |
mkdir() | Boole | Bu yöntem yeni bir dizin oluşturacaktır. |
Farklı Java Dosya İşleme İşlemleri Nasıl Gerçekleştirilir?
File sınıfında bulunan farklı yöntemleri bildiğinize göre, bunları çeşitli Java dosya işleme işlemlerini gerçekleştirmek için kullanmanın zamanı geldi. Başlangıç olarak, bir dosya üzerinde aşağıdaki işlemleri tamamlayabilirsiniz.
- Yeni bir dosya oluşturun.
- Dosya bilgilerini alın.
- Bir dosyaya yazın.
- Bir dosyadan okuyun.
- Bir dosyayı silin.
Bu işlemlerin her birini gerçekleştirmek için bir örnek üzerinden gideceğiz. İlk örnekte, yeni bir dosya oluşturacağız ve ardından diğer görevleri gerçekleştirmek için aynı dosyayı kullanacağız.
Dosya Oluşturma
createNewFile() yöntemiyle bir dosya oluşturabilirsiniz. Yöntemi yürütmek, doğru veya yanlış döndürür. Dosya başarıyla oluşturulursa, true değerini döndürür. Öte yandan, dosya zaten varsa, false döndürür.
Dosya başarıyla oluşturulmazsa bir istisna oluşturabileceğinden, bu yöntemi her zaman bir try ve catch bloğu içinde kullanmanız önerilir. Java'da istisna işleme kılavuzumuzda bununla ilgili daha fazla bilgi edinebilirsiniz . Yeni bir boş dosya oluşturmak için createNewFile() yöntemini kullanan aşağıdaki örneğe bakın.
java.io.File'ı içe aktarın; // Dosya sınıfını içe aktarma
java.io.IOException'ı içe aktarın; // Hataları işlemek için IOException sınıfını içe aktarma
genel sınıf CreateFileExample{
public static void main(String[] args){
denemek{
Dosya nesnesi = yeni Dosya(“newFile.txt”);
if(obj.createNewFile()){ // true döndürürse, yani başarıyla oluşturuldu
System.out.println(“İle başarıyla oluşturuldu:” + obj.getName());
}
else{ // false döndürürse, yani dosya zaten var
System.out.println(“Dosya zaten var”);
}
}
catch (IOException e){ // herhangi bir hata oluşursa istisnaları yakalamak için
System.out.println(“Hata oluştu”);
e.printStackTrace();
}
}
}
Çıktı:
Dosya başarıyla oluşturuldu: newFile.txt
Dosya Bilgilerini Alma
Dosyanın ad, uzunluk, mutlak yol, okunabilir ve daha fazlası gibi farklı bilgilerine erişmek için File sınıfında tanımlanan çeşitli yöntemleri kullanabilirsiniz. Aşağıdaki örnekte dosya bilgilerini alma yöntemlerinden bazıları kullanılmıştır.
java.io.File'ı içe aktarın;
genel sınıf AccessInfoExample{
public static void main(String[] args){
// Bir nesne oluşturma
Dosya nesnesi = yeni Dosya(“newFile.txt”);
if(nesne.exists()){
// Dosya adı alınıyor
System.out.println(“Dosyanın adı:” + obj.getName());
// Mutlak yol alma
System.out.println(“Dosyanın mutlak yolu:” + obj.getAbsolutePath());
// Dosyanın yazılabilir olup olmadığı kontrol ediliyor
System.out.println(“Dosya yazılabilir mi?” + obj.canWrite());
// Dosyanın okunabilir olup olmadığı kontrol ediliyor
System.out.println(“Dosya okunabilir mi?” + obj.canRead());
// Uzunluğun bayt cinsinden alınması
// Dosyamıza henüz bir şey yazmadığımız için 0 gösterecek.
System.out.println(“Bayt cinsinden dosya boyutu:” + obj.length());
}
Başka{
System.out.println(“Dosya adı” + obj.getName() + “mevcut değil.”);
}
}
}
Çıktı:
Dosyanın adı: newFile.txt
Dosyanın mutlak yolu: D:JavaProgramming:newFile.txt
Dosya yazılabilir mi? doğru
Dosya okunabilir mi? doğru
Bayt cinsinden dosya boyutu: 0
Yukarıdaki örneğin çıktısı, dosyanın adına, onu kaydettiğiniz yola ve boyutuna bağlı olarak değişebilir. Belirtilen dosya mevcut değilse, “newFile.txt adlı dosya mevcut değil” mesajını gösterecektir.
Dosyaya Yazma
Bayt verilerini yazmak için FileOutputStream sınıfını ve karakterler için FileWriter sınıfını kullanın. Aşağıdaki örnekte, "newFile" içine bir şeyler yazmak için FileWriter sınıfını ve onun önceden tanımlanmış write() yöntemini kullanacağız.
Örneğe başlamadan önce dikkat edilmesi gereken bir nokta, bir dosyayı yazmak için her açtığınızda, onu close() yöntemiyle kapatmanız gerektiğidir. Dosyayı kapatmak, Java derleyicisi tarafından bir dosyaya yazmak için ayrılan kaynakları almanızı sağlar. Örnekte nasıl yapılacağına bir göz atalım.
java.io.FileWriter'ı içe aktarın; // FileWriter sınıfını içe aktarma
java.io.IOException'ı içe aktarın; // Hataları işlemek için IOException sınıfını içe aktarma
genel sınıf WriteExample{
public static void main(String[] args){
denemek{
FileWriter nesnesi = new FileWriter(“newFile.txt”);
obj.write(“Bu, newFile.txt dosyasına yazılacak!”);
obj.close(); // Dosyayı kapatıyoruz
System.out.println(“Dosyaya başarıyla yazdık ve kapattık.”);
}
catch(IOException e){
System.out.println(“Hata oluştu.”);
e.printStackTrace();
}
}
}
Çıktı:
Dosyaya başarıyla yazdık ve kapattık.
Dosyadan Okuma
Bayt verilerini okumak için FileInputStream'i ve bir dosyadan karakter verilerini okumak için FileReader'ı kullanabilirsiniz. Alternatif olarak, bir dosyadan okumak için Scanner sınıfını da kullanabilirsiniz. Veri yazmak için FileWriter'ı zaten kullandığımızdan, bu örnekte verileri okumak için Scanner sınıfını kullanacağız. Yazarken olduğu gibi, okurken de açılan dosyayı kapatmak gerekir.
java.io.File'ı içe aktarın; // Dosya sınıfını içe aktarma
java.io.FileNotFoundException'ı içe aktarın; // Hataları işlemek için sınıfı içe aktarma
java.util.Scanner'ı içe aktarın; // Metin dosyalarını okumak için Tarayıcı sınıfını içe aktarma
genel sınıf ReadExample{
public static void main(String[] args){
denemek{
Dosya nesnesi = yeni Dosya(“newFile.txt”);
Tarayıcı robj = yeni Tarayıcı(obj);
while (robj.hasNextLine()){
Dize dataInfo = robj.nextLine();
System.out.println(dataInfo);
}
robj.close();
}
catch(FileNotFoundException e){
System.out.println(“Hata oluştu.”);
e.printStackTrace();
}
}
}
Çıktı:
Bu, newFile.txt dosyasına yazılacaktır!
Dosya Silme
File sınıfının delete() yöntemini kullanarak bir dosyayı silebilirsiniz. Boşsa, tüm bir klasörü de silebilirsiniz. Aşağıdaki örnekteki “newFile.txt” dosyamızı silelim.
java.io.File'ı içe aktarın; // Dosya sınıfını içe aktarın
genel sınıf Örneği Sil{
public static void main(String[] args){
Dosya nesnesi = yeni Dosya(“newFile.txt”);
if(obj.delete()){
System.out.println(“Adlı dosya” + obj.getName() + “başarıyla silindi.”);
}
Başka{
System.out.println(“Dosya silinmedi.”);
}
}
}
Çıktı:
newFile.txt adlı dosya başarıyla silindi.
Ayrıca Okuyun: Java Projesi Fikirleri ve Konuları
Dünyanın En İyi Üniversitelerinden Online Yazılım Kursları Öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Çözüm
Bu gönderide , Java'da dosya işleme hakkında her şeyi öğrendiniz . Java, bu tür çeşitli işlevler sağlar ve bu da onu dünya çapında en popüler programlama dillerinden biri yapar. Bu nedenle, Java geliştiricilerinin Hindistan'daki maaşlarının çok yüksek olması şaşırtıcı değildir . Java geliştiricisi olmak ve yüksek maaş paketi almak istiyorsanız upGrad'ın ücretsiz Java çevrimiçi kursu tam size göre.
Kurs, paha biçilmez bir beceri geliştirme girişimi olan upStart programının bir parçasıdır. Ücretsiz kursu tamamlayıp sertifikayı aldıktan sonra , Full-Stack Geliştirmede upGrad'ın PG Sertifikasyonunu tercih edebilirsiniz . Projeler aracılığıyla uygulamalı deneyimle 400 saatten fazla öğrenme materyali elde edersiniz. Dersi alın ve Java programlama kavramlarıyla yazılım geliştirme alanında uzmanlaşın.
Java'da dosyalar nasıl okunur ve yazılır?
InputStream sınıfının bir nesnesi, baytların okunabileceği bir veri kaynağını temsil eder ve OutputStream sınıfının bir nesnesi, baytların yazılabileceği bir hedefi temsil eder. Bu tür nesneler, dosyaları okumak ve yazmak, soketlerden veri okumak ve yazmak ve çeşitli diğer giriş ve çıkış işlemlerini gerçekleştirmek için java.io paketinin çeşitli sınıflarıyla birlikte kullanılır.
Java'daki farklı dosya işleme kitaplıkları nelerdir?
Java'da sağlanan birkaç dosya işleme kitaplığı vardır. Her birinin kendi amacı ve kullanımı vardır. Java.io paketi, temel dosya işleme sınıflarını tanımlar. Yani en genel amaçlı dosya işleme kütüphanesi diyebiliriz. Yeni Giriş/Çıkış paketi olarak da bilinen java.nio paketi, çoğunlukla yüksek verimli, düşük gecikmeli ve düşük bant genişliğine sahip veri aktarımı için kullanılır. Güvenli, hafif ve platformdan bağımsızdır. Bu paket, kanal tabanlı API'ler ekleyerek java.io paketini genişletir. Ayrıca, java.nio.file paketi, dosya sistemlerine programlama arayüzü içindir. Dosya sistemi, bilgilerin depolandığı fiziksel ortamdan bağımsız olarak verilerin hiyerarşik bir organizasyonudur. Bir dosya sistemi, uygulamalar arasında dosya paylaşımını ve süreçler arası iletişimi sağlar. Ayrıca, java.nio.file.attribute paketi, dosya sistemi öznitelikleri için sınıflar ve arayüzler içindir.
Java'da dosya işleme uygulamaları nelerdir?
Dosya işleme, birçok ilginç ve değerli Java Programlama konularından biridir. Java programcılarının Java'da bir dosyanın nasıl oluşturulacağını, açılacağını, okunacağını, yazılacağını, ekleneceğini ve silineceğini bilmesi hayati önem taşır. Bu, programcıların bir dosyadaki verileri işlemesine yardımcı olur. Bir dosya üzerinde yapılabilecek birçok işlem vardır, örneğin dosyanın uzunluğunu bulma, bir dosyanın içeriğini okuma, dosyanın yazılabilir olup olmadığını belirleme vb.