NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 11

Benzer belgeler
BİL-141 Bilgisayar Programlama I (Java)

BM-209 Nesne Yönelimli Programlama

JAVA DA İSTİSNALAR VE DOSYA İŞLEMLERİ. Yrd. Doç.Dr. İlhan AYDIN

JAVA DA GİRİŞ/ÇIKIŞ İŞLEMLERİ. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 9 1

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

// hataları işaret eden referans

BİL-141 Bilgisayar Programlama I (Java)

Klavyeden Basit Giriş/Çıkış İşlemleri

BİL-141 Bilgisayar Programlama I (Java)

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

EMT2226 Nesne Yönelimli Programlamaya Giriş

Karşılaştırma İşlemleri ve Koşullu İfadeler

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Programlama Dillerinde Kullanılan Veri Tipleri

Ders - 7 while döngüsü

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

BufferedReader. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Readable. Altsınıfları: LineNumberReader. Bildirimi: public class BufferedReader

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

InputStream Sınıfı. Class InputStream. java.io. java.lang.object java.io.inputstream. Kılgıladığı Arayüzleri: Closeable, AutoCloseable

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Java da İşleçler, Ders #3 (4 Kasım 2009)

D İ Z İ L E R A R R A Y S

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

ByteArrayOutputStream

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

JAVADA DİZİ İŞLEMLERİ

BİL-141 Bilgisayar Programlama I (Java)

Temel Veri Türü İşlemleri

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

/*int sayi1, sayi2,toplam=0;

BİL132 Bilgisayar Programlama II

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

Nesne Yönelimli Programlama

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BASİT VERİ TÜRLERİ, STRİNGLER, VE KONSOL GİRİŞ/ÇIKIŞ

protected Reader() Karekter akımı okumak için Reader nesnesi yaratır. Yaratılan nesne kendi kendisiyle eşzamanlı olur.

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

Progress Barlı, FTP Dosya Upload Appleti

DOSYA İŞLEMLERİ Programlama dilleri hafta -

String (Dizgi) İşlemleri

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA

Yrd. Doç. Dr. Caner ÖZCAN

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Soru 1: Fahrenheit cinsinden verilen sıcaklığı Kelvin'e çeviren bir program yazınız. Aşağıdaki dönüşüm formülünü kullanabilirsiniz:

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

Yeni G/Ç (new I/O) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 10 1

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

İÇİNDEKİLER VII İÇİNDEKİLER


BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

3.Hafta. . Kontrol Deyimleri/İfadeler

Java String İşlemleri

HSancak Nesne Tabanlı Programlama I Ders Notları

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

1 - Button Kontrolu Nasıl Yapılır?

Java da Program Denetimi ve Operatörler

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

Sınav Dağılım & IMKB Endeks

Programlama Dilleri 3

Programlama Dilleri III 1

HSancak Nesne Tabanlı Programlama I Ders Notları

Scanner Sınıfı. Class Scanner. java.util. java.lang.object java.util.scanner. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Iterator<String>

Görsel Programlama 1

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Eln 1002 Bilgisayar Programlama II

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları)

C/C++ Disk G/Ç İşlemleri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

BİL-141 Bilgisayar Programlama I (Java)

ÜNİTE NESNE TABANLI PROGRAMLAMA I İÇİNDEKİLER. Okt. Mustafa AKBUĞA HEDEFLER DOSYA VE KLASÖR İŞLEMLERİ

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

ALGORİTMA VE PROGRAMLAMA II

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Örnek 1: Programı yazın ve çalıştırın.

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

Transkript:

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 11

G/Ç işlemleriyle uygulamalara neler yaptırabiliriz... Dosya işlemleri Dosyadan okuma Dosyaya yazma Verilerin Aktarılması Ağ (network) üzerinden Nesnelerin kalıcı ortama yazılması (Serialization) Rasgele erişimli dosyalar (Random access file) A.B.Altıntaş - Java Programlama Dili Yazılım Tasarımı

Dosya Giriş/Çıkış İşleminin Gerekliliği Program sona erdiğinde kullanılan veriler kaybolur. Verileri kaybetmemek için dosyaya saklanması gereklidir. Aynı şekilde klavyeden girilen verilerin de program çalıştırıldığında tekrar tekrar girilmesi yerine kaydedilip tekrar çalıştırıldığında okunarak elde edilmesi gerekir.

Konular Akımlar ve Dosya Giriş/Çıkış İşlemleri Metin Dosyaları ve İkili Dosyalar Metin Dosyaları Giriş/Çıkış İşlemleri PrintWriter Sınıfı BufferedReader Sınıfı File Sınıfı

Akımlar ve Dosya Giriş/Çıkış İşlemleri Giriş/Çıkış (G/Ç) bir programa giren ve çıkan verilerin genel gösterimine denir. Bir programa giriş klavyeden veya dosyadan yapılabilir. Programın çıktısı ise ekrana veya dosyaya yapılabilir. Eğer giriş/çıkış işlemleri dosya ile iletişim gerektiriyorsa Java da bu işlemlere yönelik hazırlanmış özel sınıf ve nesnelerin kullanılması gerekir.

Akım (Stream) Uygulama ile kaynak arasındaki yol/bağlantı Sekizli (byte) akımları Karakter akımları A.B.Altıntaş - Java Programlama Dili Yazılım Tasarımı

Akımlar (Streams) Java da dosya işlemleri akımlar aracılığıyla yapılır. Eğer veriler dışarıdan programa geliyorsa buna giriş akımı (input stream), programdan dışarı gidiyorsa buna çıkış akımı (output stream) denir. Hava da akım programa giriş/çıkış yapan verilerin kaynaklarını (klavye, dosya) ve varış noktalarını (ekran, dosya) düzenleyen nesne olarak görev yapmaktadır. System.out nesnesi verileri ekrana yazan bir çıkış akımına, Scanner nesnesi de verileri klavyeden alan bir giriş akımına örnek olarak gösterilebilir. Dosya G/Ç işlemlerinin yapılabilmesi için giriş ve çıkış akımları dosya ile ilişkilendirilirler.

Gelen sekizli (byte) akımları Gelen: Kaynaktan uygulamaya doğru bir akışı belirtir. Sekizli (byte): Kurulan bağlantı içerisinden sekizli(byte) tipinde verilerin akacağını belirtir. Akım: Kaynak ile uygulama arasında kurulan bağlantı. A.B.Altıntaş - Java Programlama Dili Yazılım Tasarımı

Sekizli Akımları (Byte Streams) Sekizli (byte) akımları üzerinde iş yapabilmek için tasarlanmış sınıflar Java 1.0'dan itibaren mevcuttur. java.io.inputstream (Gelen sekizli akımları) java.io.outputstream (Giden sekizli akımları) A.B.Altıntaş - Java Programlama Dili Yazılım Tasarımı

Önemli bir nokta java.io paketinin altındaki bir sınıfın ismi eğer InputStream veya OutputStream ile bitiyorsa o zaman; Bu sınıf, sekizli akımları (byte streams) üzerinde işlem yapması için tasarlanmıştır sonucu çıkartılabilir. FileInputStream sınıfı BufferedOutputStream sınıfı gibi... A.B.Altıntaş - Java Programlama Dili Yazılım Tasarımı

InputStream soyut sınıfı ve bu soyut sınıfdan türemiş alt sınıflar A.B.Altıntaş - Java Programlama Dili Yazılım Tasarımı

BufferedInputStream Sınıfı- I BufferedInputStream sınıfı, FilterInputStream sınıfından türemiştir. BufferedInputStream nesnesinin içerisinde içsel bir dizi bulunur. İçsel bir diziden kasıt edilen, fiziksel dosya veya soket gibi bir kaynaktan okunan sekizli verileri ilk olarak bu içsel dizinin içerisine yerleştirilmesidir. A.B.Altıntaş - Java Programlama Dili Yazılım Tasarımı

BufferedInputStream Sınıfı- II A.B.Altıntaş - Java Programlama Dili Yazılım Tasarımı

OutputStream Soyut (Abstract) Sınıfı Şu ana kadar bir kaynaktan uygulamamıza verilerin nasıl alınıp işlendiğini inceledik Şimdi sıra uygulamadan kaynağa doğru (ör: dosya) veri yazdırma işlemlerinde... A.B.Altıntaş - Java Programlama Dili Yazılım Tasarımı

OutputStream soyut (Abstract) sınıfı ve bu soyut sınıfdan türemiş alt sınıflar Bağlantı kurup yazma işlemleri için tasarlanmış sınıflar Giden sekizli (byte) akımlarına özellik katmak için tasarlanmış sınıflar. A.B.Altıntaş - Java Programlama Dili Yazılım Tasarımı

Konular Akımlar ve Dosya Giriş/Çıkış İşlemleri Metin Dosyaları ve İkili Dosyalar Metin Dosyaları Giriş/Çıkış İşlemleri PrintWriter Sınıfı BufferedReader Sınıfı File Sınıfı

Metin Dosyaları ve İkili Dosyalar Bilgisayar ortamında dosyalarda saklanan veriler 0 ve 1 lerden oluşur. Dosyalar içerik olarak metin dosyası ve ikili dosya olmak üzere iki çeşittir. Metin dosyaları System.out nesnesi ile kaydedilen ve herhangi bir metin düzenleyicisi tarafından içeriği okunabilen dosyalardır. İkili dosyalar ise bilgilerin ikili olarak saklandığı ve görüntü, fotoğraf, müzik veya video gibi özel yapıya sahip dosyalardır. Bu dosyaları metin düzenleyici programlar açmak mümkün değildir.

Metin Dosyaları ve İkili Dosyalar - devam Metin dosyaları kullanıcıların okuyabilmesi, ikili dosyalar ise bilgisayarların okuyabilmesi için hazırlanmış olarak düşünebilir. Metin dosyaları herhangi bir bilgisayarda aynı şekilde okunabilir. İkili dosyaları okuyabilmek için özel programlara ihtiyaç vardır.

Konular Akımlar ve Dosya Giriş/Çıkış İşlemleri Metin Dosyaları ve İkili Dosyalar Metin Dosyaları Giriş/Çıkış İşlemleri PrintWriter Sınıfı BufferedReader Sınıfı File Sınıfı

Metin Dosyaları Giriş/Çıkış İşlemleri Java da metin dosyası çıkış işlemleri Printwriter ve FileOutputStream sınıfları kullanılarak yapılır. Dosya çıkış işlemleri için bu sınıflar ile bir output stream oluşturulur. Giriş işlemleri ise BufferedReader ve FileReader sınıfları kullanılarak yapılır. Dosya giriş işlemleri için bu sınıflar ile bir input stream oluşturulur.

Konular Akımlar ve Dosya Giriş/Çıkış İşlemleri Metin Dosyaları ve İkili Dosyalar Metin Dosyaları Giriş/Çıkış İşlemleri PrintWriter Sınıfı BufferedReader Sınıfı File Sınıfı

PrintWriter Sınıfı Java da bir metin dosyasına çıktı gönderebilmek için java.io kütüphanesinin içinde yer alan PrintWriter sınıfına ait println metodu kullanılır. Java da PrintWriter sınıfını programda kullanabilmek için import java.io.* ile import edilmesi gereklidir.

PrintWriter Sınıfı // Metin dosyasi olusturulmasi örnek programi import java.io.*; import java.util.*; public class OrnekCikisMetinDosyasi public static void main(string[] args) PrintWriter ciktiakimi = null; String dosya = "ornek.txt"; try ciktiakimi = new PrintWriter (new FileOutputStream(dosya)); }

PrintWriter Sınıfı catch (FileNotFoundException hata) System.out.println("ornek.txt dosyasi olustururken hata oldu"); System.exit(0); } System.out.print("Bir ornek cumle giriniz:"); Scanner klavye = new Scanner(System.in); String cumle = klavye.nextline(); ciktiakimi.println("klavyeden girdiginiz cumle: " + cumle); ciktiakimi.println("dosyayi kapatabiliriz."); ciktiakimi.close(); System.out.println("Girilen cumle ornek.txt dosyasina yazildi."); } } Ekran Çıktısı: Bir ornek cumle giriniz: Ben Java kitabı okuyorum Girilen cumle ornek.txt dosyasina yazildi. Metin dosyasının içeriği Klavyeden girdiginiz cumle: Ben Java kitabı okuyorum Dosyayi kapatabiliriz.

PrintWriter Sınıfı Örnekte dosyaya çıktı göndermek için PrintWriter sınıfına ait ciktiakimi nesnesi oluşturulmuştur. Program bu satırı çalıştırırken eğer ornek.txt dosyası varsa, varolan dosyanın içeriği silinip yeni içerik olarak gönderilen metin yazılır. Eğer ornek.txt dosyası yoksa, yeni bir dosya oluşturulup gönderilen metin yazılır.

PrintWriter Sınıfı Örnekte PrintWriter nesne kurucusuna FileOutputStream sınıfından bir nesne gönderilmiştir. FileOutputStream nesne kurucusu ise parametre olarak String türünde bir değer almaktadır ve dosyanın adını göstermektedir. Dosya isimleri seçerken Java da kullanılan isimlendirme kuralları değil işletim sistemleri kuralları geçerlidir.

PrintWriter Sınıfı Java da dosya işlemleri sırasında FileNotFoundException kural dışı durumu oluşabilir. Kural dışı durumu yakalamak için try-catch bloğu kullanılmalıdır. Buradaki kural dışı durum sadece dosya açma işlemi yapan FileOutputStream nesne kurucusundan kaynaklanabilir. Bu yüzden try bloğu içerisine alınmalıdır. FileNotFoundException tipi kural dışı durum, IOException sınıfına ait özel bir kural dışı durumdur.

PrintWriter Sınıfı Aşağıdaki satır ile PrintWriter sınıfına ait println() metoduyla dosyaya yazma yapılmaktadır. ciktiakimi.println("klavyeden girdiginiz cumle: " + cumle);

PrintWriter sınıfı metotları Metot tanımı boolean checkerror () void close () void flush () void print (boolean b) void print (char c) void print (char [] s) void print (double d) void print (float f) void print (int i) Açıklama Akımın hata durumunu verir. Akımı kapatır. Akımın içeriğini temizler. Bir Boolean değişkenini akıma yazar. Bir karakter (char) değişkenini akıma yazar. Bir karakter (char) dizisini akıma yazar. Bir ondalıklı sayı (double) değişkenini akıma yazar. Bir ondalıklı sayı (float) değişkenini akıma yazar. Bir tamsayı (int) değişkenini akıma yazar.

PrintWriter sınıfı metotları - devam Metot tanımı void print (long l) void print (Object o) void print (String s) void println() void println(boolean b) void println(char c) void println(char [] s) void println(double d) Açıklama Bir büyük tamsayı (long) değişkenini akıma yazar. Bir nesneyi akıma yazar. Nesnenin tostring() metodunu kullanır. Bir dizgi (String) değişkenini akıma yazar. Satır sonu yaparak yeni satıra geçer. Bir Boolean değişkenini akıma yazar ve satırı sona erdirir. Bir karakter (char) değişkenini akıma yazar ve satırı sona erdirir. Bir karakter (char) dizisini akıma yazar ve satırı sona erdirir. Bir ondalıklı sayı (double) değişkenini akıma yazar ve satırı sona erdirir.

PrintWriter sınıfı metotları - devam Metot tanımı void println(float f) void println(int i) void println(long l) void println(object o) void println(string s) void seterror() void write(char [] buf) Açıklama Bir ondalıklı sayı (float) değişkenini akıma yazar ve satırı sona erdirir. Bir tamsayı (int) değişkenini akıma yazar ve satırı sona erdirir. Bir büyük tamsayı (long) değişkenini akıma yazar ve satırı sona erdirir. Bir nesneyi akıma yazar ve satırı sona erdirir. Bir dizgi (String) değişkenini akıma yazar ve satırı sona erdirir. Eğer bir hata gerçekleşmişse bu metot hata olduğunu belirtir. Bir karakter (char) dizisini akıma yazar.

PrintWriter sınıfı metotları - devam Metot tanımı void write(char [] buf, int off, int len) void write(char c) void write(string s) void write(string s, int off, int len) Açıklama Bir karakter (char) dizisinin off ile belirtilen sıradaki karakterinden başlar len ile belirtilen kadar karakterini akıma yazar. Tek bir karakteri (char) akıma yazar. Bir dizgiyi (String) akıma yazar. Bir dizginin (String) off ile belirtilen sıradaki karakterinden başlar len ile belirtilen kadar karakterini akıma yazar.

PrintWriter Sınıfı Java da bir dosya açıldığında, bu dosyayla ilgili işlemler bitince dosyanın close(); ile kapatılması gerekir. ciktiakimi.close(); Java da varolan bir dosya metin dosyası üzerinde değişiklik yapmak istenirse, PrintWriter sınıfına overload yapılmış başka bir kurucuyu kullanmak gerekir. ciktiakimi = new PrintWriter(new FileOutputStream(dosya, true));

PrintWriter Sınıfı İkinci parametre dosyaya ekleme yapılıp yapılmayacağını belirler. true ise dosyaya ekleme yapılacağı bildirilir. Bir dosya açılmadan önce var olup olmadığı File sınıfına ait exists() metoduyla kontrol edilir. Bir nesneye ait bilgiler tostring() ile yazdırılır.

Aşağıdaki örnekte Araba sınıfının tostring() metodu kullanılarak yazma işlemi yapılmıştır. // tostring() metodunun kullanimi public class Araba private String renk; private int beygirgucu; private int hiz; public Araba(String renk, int guc, int hiz) this.renk = renk; this.beygirgucu = guc; this.hiz = hiz; }

public void setrenk(string renk) this.renk = renk; } public void setbeygirgucu(int guc) this.beygirgucu = guc; } public void sethiz(int hiz) this.hiz = hiz; }

} public String tostring() String ozellikler = null; ozellikler += Renk = + this.renk + \n ; ozellikler += Beygir Gucu = + this.beygirgucu + \n ; ozellikler += Hiz = + this.hiz + \n ; return (ozellikler); }

Araba sınıfının tostring() metoduyla dosyaya yazma işlemi. // tostring() metoduna sahip Araba sinifinin kullanimi import java.io.*; public class DeneAraba public static void main(string[] args) PrintWriter ciktiakimi = null; String dosya = "ornekaraba.txt"; try } ciktiakimi = new PrintWriter (new FileOutputStream(dosya));

catch (FileNotFoundException hata) System.out.print("ornekAraba.txt dosyasi "); System.out.println("olustururken hata oldu"); System.exit(0); } Araba ferrari = new Araba("kirmizi",450,320); Araba fiat = new Araba("beyaz",75,145); Araba opel = new Araba("mavi",150,200); ciktiakimi.println("ferrari ozellikleri"); ciktiakimi.println(ferrari.tostring()); ciktiakimi.println(); ciktiakimi.println("fiat ozellikleri"); ciktiakimi.println(fiat.tostring()); ciktiakimi.println(); ciktiakimi.println("opel ozellikleri");

} } ciktiakimi.println(opel.tostring()); ciktiakimi.println(); System.out.print("Araba ozellikleri ornekaraba.txt"); System.out.println(" dosyasina yazildi."); Çıktı: Araba özellikleri ornekaraba.txt dosyasina yazildi. Metin dosyasının içeriği Ferrari özellikleri Renk: kirmizi Beygir gucu: 450 Hiz: 320 Fiat özellikleri Renk: beyaz Beygir gucu: 75 Hiz: 145 Opel özellikleri Renk: mavi Beygir gucu: 150 Hiz: 200

Konular Akımlar ve Dosya Giriş/Çıkış İşlemleri Metin Dosyaları ve İkili Dosyalar Metin Dosyaları Giriş/Çıkış İşlemleri PrintWriter Sınıfı BufferedReader Sınıfı File Sınıfı

BufferedReader Sınıfı Java da bir metin dosyasından okuma yapmak için java.io kütüphanesinin içinde yer alan BufferedReader sınıfı kullanılır. BufferedReader sınıfına ait bir nesne oluştururken metin dosya adı doğrudan girilmez. FileReader adlı bir sınıftan oluşturulan nesne kullanılır. Metin dosyasından bir satır okumak için readline() metodu kullanılır.

// Metin dosyasi giris örnegi import java.io.*; public class OrnekGirisMetinDosyasi public static void main(string[] args) try BufferedReader girisakimi = new BufferedReader(new FileReader("ornek.txt")); String satir = null; satir = girisakimi.readline( ); System.out.print("ornek.txt dosyasinin 1. satirinda:"); System.out.println("\"" + satir + "\" yazmaktadir. "); } satir = girisakimi.readline( ); System.out.print("ornek.txt dosyasinin 2. satirinda:"); System.out.println("\"" + satir + "\" yazmaktadir."); girisakimi.close( );

catch(filenotfoundexception e) System.out.print("ornek.txt dosyasi bulunamadi"); System.out.println("veya acilamadi."); } catch(ioexception e) System.out.print("ornek.txt dosyasindan veri girisinde"); System.out.println(" hata olustu."); } } } Ekran Çıktısı: ornek.txt dosyasinin 1.satirinda Bir ornek cumle giriniz: Ben Java kitabi okuyorum yazmaktadir. ornek.txt dosyasinin 2.satirinda Dosyayi kapatabiliriz. yazmaktadir. Metin dosyasının içeriği Bir ornek cumle giriniz: Ben Java kitabi okuyorum Dosyayi kapatabiliriz.

BufferedReader Sınıfı Metin girdisi elde etme işlemi yapısal olarak metin çıktısı elde etme işlemine benzemektedir. Metin girdisinde iki ayrı kural dışı durum oluşabileceğinden try bloğuyla iki ayrı catch bloğu kullanılmıştır. Dosyanın açılamaması durumunda FileNotFoundException, dosya okuma hatası oluşması durumunda ise IOException kural dışı durum oluşur.

BufferedReader Sınıfı BufferedReader sınıfı metin dosyasından bir satır okur ancak atırın içeriği hakkında bilgi vermez. Okuna satır String olarak saklanır. Okuna satırın parçalara ayrılıp ayrı ayrı kullanılması için StringTokenizer adındaki sınıf kullanılır. Bir metin dosyasından tüm bilgilerin okunması için döngü oluşturulur. Tüm satırlar bitince readline() metodu null değeri döndürür.

//Döngü kullanarak giriş yapılan bir metin dosyasi örnegi import java.io.*; public class OrnekGirisMetinDosyasi public static void main(string[] args) try BufferedReader girisakimi = new BufferedReader(new FileReader("ornek.txt")); String satir = null; int sayac = 0; satir = girisakimi.readline( ); while (satir!= null) sayac++; System.out.print("ornek.txt dosyasinin " + sayac); System.out.print("satirinda:" + sayac); System.out.println("\"" + satir + "\" yazmaktadir. "); satir = girisakimi.readline( ); }

} } girisakimi.close( ); } catch(filenotfoundexception e) System.out.print("ornek.txt dosyasi bulunamadi"); System.out.println("veya acilamadi."); } catch(ioexception e) System.out.print("ornek.txt dosyasindan veri girisinde"); System.out.println(" hata olustu."); }

Konular Akımlar ve Dosya Giriş/Çıkış İşlemleri Metin Dosyaları ve İkili Dosyalar Metin Dosyaları Giriş/Çıkış İşlemleri PrintWriter Sınıfı BufferedReader Sınıfı File Sınıfı

File Sınıfı Java da bir metin dosyası giriş ve çıkış işlemleri PrintWriter ve BufferedReader sınıfları kullanılarak yapılır. Ancak bu sınıflar dosyanın genel özellikleriyle ilgili meotlara sahip değildirler. Bir klasörde herhangi bir dosyanın olup olmadığı, okunup okunamayacağı gibi durumlar File sınıfı ile kontrol edilebilir.

//Döngü ve File kullanarak giris yapilan bir metin dosyasi örnegi import java.io.*; import java.util.*; public class OrnekGirisMetinDosyasi2 public static void main(string[] args) do System.out.println("Okumak istediginiz dosya adini giriniz."); Scanner klavye = new Scanner(System.in); String dosya = klavye.next(); File dosyanesnesi = new File(dosya); if (!dosyanesnesi.exists()) System.out.println("Bu isimde bir dosya yok."); else if (!dosyanesnesi.canread()) System.out.println("Bu dosya okunamiyor."); } while ((!dosyanesnesi.exists())!dosyanesnesi.canread()));

try BufferedReader girisakimi = new BufferedReader(new FileReader(dosyaNesnesi)); } String satir = null; int sayac = 0; satir = girisakimi.readline(); while (satir!= null) sayac++; System.out.print("ornek.txt dosyasinin " + sayac); System.out.print(". satirinda:"); System.out.println("\"" + satir + "\" yazmaktadir."); satir = girisakimi.readline( ); } girisakimi.close( );

} } catch(filenotfoundexception e) System.out.print("ornek.txt dosyasi bulunamadi"); System.out.println("veya acilamadi."); } catch(ioexception e) System.out.print("ornek.txt dosyasindan veri girisinde"); System.out.println(" hata olustu."); }

File Sınıfı Örnekte BufferedReader nesne kurucusuna, parametre olarak FileReader nesne kurucusu gönderilmiştir. FileReader nesne kurucusuna dosya ismi olarak String gönderilebileceği gibi, bir File nesnesi de (örnekte dosyanesnesi) gönderilebilir.

File sınıfının bazı metotları Metot tanımı boolean exists() boolean canread() boolean canwrite() boolean delete() long length() String getname() String getpath() Açıklama Metodu çağıran dosyanın klasörde olup olmadığını kontrol eder. Metodu çağıran dosyanın okunup okunamayacağını dosya özelliklerine göre belirler. Metodu çağıran dosyaya yazaılıp yazılamayacağını dosya özelliklerine göre belirler. Metodu çağıran dosyayı silmeye çalışır. Silme başarılı ise true değilse false döndürür. Metodu çağıran dosyanın byte cinsinden uzunluğunu verir. Metodu çağıran dosyanın ismini verir. Metodu çağıran dosyanın bilgisayar üzerindeki yolunu (path) verir.