Java – Dosyalama İşlemleriyle Basit Rehber Uygulaması
Merhaba arkadaşlar.. Bu yazımızda javada dosyalama işlemleri kavramamız için basit bir rehber uygulaması yapacağız. Uygulamamız iki classtan oluşacaktır. İlk classımız da main fonksiyonu […]
Merhaba arkadaşlar.. Bu yazımızda javada dosyalama işlemleri kavramamız için basit bir rehber uygulaması yapacağız. Uygulamamız iki classtan oluşacaktır. İlk classımız da main fonksiyonu […]
Merhaba arkadaşlar..
Bu yazımızda javada dosyalama işlemleri kavramamız için basit bir rehber uygulaması yapacağız. Uygulamamız iki classtan oluşacaktır. İlk classımız da main fonksiyonu bulunacak ve diğer classımıza veri gönderip veri alıp işlem gerçekleştireceğiz..O yüzden ilk önce rehber classımızın kodlarını methodlar şeklinde paylaşayım.
Bu metodumuzda açıklanacak çok birşey yok. FileWriter ile dosyayla olan bağlantımızı yapıp metoda gelen verileri .write() metoduyla dosyamıza yapıp dosyayı kapatıyoruz. FileWriter da dosya adresinden sonra verdiğimiz 2. parametre olan true değeri dosyayı append modunda açmamızı yani dosyaya yazdığımız verileri dosyanın sonuna eklememizi sağlıyor.
public void kisiEkle(String adSoyad, String numara) {
try{
FileWriter dosyaYaz = new FileWriter("E:\\rehber.txt",true);
dosyaYaz.write(adSoyad+"|"+numara+"\n");
dosyaYaz.close();
}catch(Exception ex){
}
}
kisiSil metodumuz bir parametre alıyor ve bu silinecek olan satırın kaçıncı satır olduğu. Kodların açıklamasını yanlarında açıklama satırı olarak vermeyi daha uygun gördüm. Buradaki mantık rehberi normal şekilde okuyup sileceğimiz satıra geldiğimizde o satırı atlayıp tekrar dosyaya yazmak.
public void kisiSil(int satirNo) {
try{
FileReader dosyaOku = new FileReader("E:\\rehber.txt");
int satir = 1; // Hangi satırı sileceğimizi bu sayaç ile kontrol edeceğiz
String rehber = ""; // Silme işlemini yaparken silinecek satır hariç kalanı tekrar dosyaya yazmak için burda saklıyoruz
String satirMesaj = ""; // O anki gelen aynı satırdaki karekterleri geçici olarak burada saklıyoruz
while(dosyaOku.ready()){ // Dosyanın sonuna gelip gelmediğimizi kontrol ediyor
char gelen = (char)dosyaOku.read(); // Dosyayı satır satır okuyoruz
satirMesaj += gelen; // Her gelen karekteri geçici satır değişkenimizde tutuyoruz
if(satir == satirNo){ // Silinecek satırımız ile sayaçımız aynı mı diye kontrol ediyoruz
satirMesaj = ""; // O satırı atlayacağımız için geçici satır değişkenini temizliyoruz
if(gelen == '\n') // O satırın sonuna geldik mi diye kontrol ediyoruz
satir++; // Satır sayaçımızı artırıyoruz
continue; // Aşağıdaki işlemleri yapmaması için döngüden o anlık çıkıyoruz
}
if(gelen == '\n'){ // O satırın sonuna gelip gelmediğimizi kontrol ediyoruz
rehber += satirMesaj; // Rehber değişkenine o anki satırı ekliyoruz
satir++; // Satırı artırıp yolumuza devam ediyoruz
satirMesaj=""; // Geçici satır değişkenini temizliyoruz
}
}
dosyaOku.close();
FileWriter dosyaYaz = new FileWriter("E:\\rehber.txt");
dosyaYaz.write(rehber); // Rehber değişkenini tekrar dosyaya yazıyoruz böylece belirtilen satır silinmiş oluyor
dosyaYaz.close();
}catch(Exception ex){
System.out.println(ex);
}
}
kisiDuzenle metodumuz 3 parametre alıyor. İlk parametresi kisiSil metodunda olduğu gibi hangi satırın düzenleneceğini tutuyor. Diğer iki parametre ise o satırın yeni değerleri. kisiDuzenle metodumuz da neredeyse kisiSil metoduyla aynı olduğundan kodları açıklamayak yerine farklarını söyleyim. Silme işlemi yaparken geçici satirMesaj değişkenimizi temizliyorduk bunda ise temizleyip yeni gelen verileri tutuyoruz orda.
public void kisiDuzenle(int satirNo, String adSoyad, String numara){
try{
FileReader dosyaOku = new FileReader("E:\\rehber.txt");
int satir = 1;
String rehber = "";
String satirMesaj = "";
while(dosyaOku.ready()){
char gelen = (char)dosyaOku.read();
satirMesaj += gelen;
if(satir == satirNo){
satirMesaj = "";
if(gelen == '\n'){
satirMesaj = adSoyad+"|"+numara+"\n";
satir++;
}
}
if(gelen == '\n'){
rehber += satirMesaj;
satir++;
satirMesaj="";
}
}
dosyaOku.close();
FileWriter dosyaYaz = new FileWriter("E:\\rehber.txt");
dosyaYaz.write(rehber);
dosyaYaz.close();
}catch(Exception ex){
System.out.println(ex);
}
}
Bu metodda da anlatılacak çok birşey yok dosyayı satır satır ekrana basıyor o kadar 🙂 Ben eklerken | karekteriyle birleştirmiştim ad soyad ve telefon verisini siz okurken satır satır okursanız bölüp işlemler gerçekleştirebilirsiniz üzerinde.
public void rehberOku() {
try{
FileReader dosyaOku = new FileReader("E:\\rehber.txt");
while(dosyaOku.ready()) // Dosyanın sonuna gelip gelmedik mi kontrol ediyor
System.out.print((char)dosyaOku.read()); // Read int değer döndürür char a çevirip ekrana basıyoruz
dosyaOku.close();
}catch(Exception ex){
}
}
Bu metodda diğer classımızı çağırıp kullanımı yapıyoruz sadece.
public static void main(String[] args) {
RehberClass rehber = new RehberClass();
rehber.kisiEkle("Ad Soyad", "05554443322");
rehber.kisiEkle("Yeni Kişi", "055556667788");
rehber.rehberOku();
System.out.println("------");
rehber.kisiDuzenle(2, "Düzenlenmiş", "05555555555");
rehber.rehberOku();
}
Bu yazımızda buraya kadar bir sonraki yazımızda görüşmek üzere..
yorum yap