Java Programlama Giriş/Çıkış

Slides:



Advertisements
Benzer bir sunumlar
Bölüm 11 Metin Dosyaları Metin Dosyaları Dosya Açma ve Kapama
Advertisements

Saatte V km hız ile giden bir aracın t zamanda aldığı yolu bulan metodu yazınız. Metodu kullanacak bir program yazınız. ( yol=hız*zaman, x=V*t) — Metot.
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Değişkenler ve bellek Değişkenler
Java Uygulamaları Konsol Uygulaması.
Programlama-II (Java ile Bilgisayar Programlama)
Nesneye Yönelik Programlama
String Diziler(Katarlar)
Bölüm 4 – Kontrol İfadeleri:1.kısım
OOP UYGULAMA 5.
EDUTIME Java Day 4 Serdar TÜRKEL.
SQL de Değişken Tanımlama
Veri Türleri, Atama İfadesi, Basit Girdi Çıktı
BPR152 ALGORİTMA VE PROGRAMLAMA - II
MATLAB’ de Programlama
P AKET E RIŞIMLERI SıNıFLARıN YENIDEN KULLANıMı. P AKET ( P ACKAGE ) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.BufferedReader; BufferedReader.
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
NESNEYE YÖNELİK PROGRAMLAMA
DOSYA İŞLEMLERİ.
DİZİLER.
Erişim Denetimi, Fonksiyon
C# Metot Overloading (Aşırı yükleme)
JAVADA PROGRAM DENET İ M İ VE OPERATÖRLER. int a ; a=4 ; // do ğ ru bir atama 4=a ; // yanlış bir atama!
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 7: Dosyalama İşlemleri Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
JAVA İ LE PROGRAMLAMAYA G İ R İ Ş Ekim Dr. Galip Aydın.
.Net teknolojisi ve C# Yasin Gedik Dokuz Eylül Üniversitesi (4. Sınıf) Microsoft Danışman Öğrenci
8. VİSUAL BASİC İLE TEMEL DOSYALAMA İŞLEMLERİ
Java Sınıf ve Nesne Kavramı UML Gösterimi
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
JAVA İLE PROGRAMLAMAYA GİRİŞ
DOSYA İŞLEMLERİ.
Önceki Dersi Hatırlama !!
Çoklu dallanma seçimi: switch
C# ile Seri İletişim Aslı Ergün.
JAVA’DA DÖNGÜLER.
EDUTIME Java Day 8 Serdar TÜRKEL.
Class KahveFincani { public KahveFincani() { System.out.println("KahveFincani..."); } } public class YapilandirciBasitOrnek { public static void main(String[]
JAVA’DA DİZİLER Dr.Galip AYDIN.
Sınıflar ve Nesneler Sınıf: bir nesnenin şablonunu, kalıbını, şeklini, davranışını, kalıtımını değişkenleri, metodları ve ebeveynleri vasıtasıyla tanımlar.
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
Ders İçeriği Liste Soyut veri yapısı (ADT)
NESNEYE YÖNELİK PROGRAMLAMA
Bölüm 5 Nesneler ve Metotlar
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
String class String karakterler dizisidir
Outline 4.1 Giriş 4.2 Algoritmalar 4.3 Pseudocode 4.4 Kontrol İfadeleri 4.5 if tek-seçimli ifadeler 4.6 if else seçimli ifadeler 4.7 while döngü ifadeleri.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
JAVA PROGRAMLAMA ORNEKLER
Excel’de VBA programlama (Visual Basic Application) Ders 5
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
BİLGİSAYAR programlama II
MOB İ L UYGULAMA GEL İ ŞT İ RME Hafta 11. VER İ LER İ SAKLAMA Android sistemlerinde hazırlanacak projelerde verileri saklamak için android sisteminin.
Kompozisyon Bir Sınıf diğer sınıf nesne referanslarını içinde barındırabilir. Bu referanslar sınıfın üyeleridir.
STRING FONKSİYONLARI Dim ders As String
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
BİLGİSAYAR PROGRAMLAMA Ders 10: Dosyalama İşlemleri
Bilgisayar Programlamasına ve Veri Analizine Giriş
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
Bilgisayar Programlamasına ve Veri Analizine Giriş - VII
Java İle Programlamaya GİRİş
Nesneye Dayalı Programlama 1
Bilgisayar Programlamasına ve Veri Analizine Giriş - VII
C ile Programlamaya Giriş
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Java Programlama Giriş/Çıkış

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ı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. Java’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.

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.

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.

Çıkış İşlemleri PrintWriter FileOutputStream Hafıza Disk ÇıkışAkımı ornek.txt PrintWriter cıkısakımı = new PrintWriter( new FileOutputStream(“ornek.txt”) );

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)); }

catch (FileNotFoundException hata) { System. out. println("ornek 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.

Ö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.

Ö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.

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.

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ı

ciktiAkimi = new PrintWriter(new FileOutputStream(dosya, true)); 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));

İkinci parametre dosyaya ekleme yapılıp yapılmayacağını belirler İ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.

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.

BufferedReader sınıfı metin dosyasından bir satır okur ancak atırın içeriği hakkında bilgi vermez. Okunan satır String olarak saklanır. Okunan 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.

Giriş İşlemleri BufferedReader FileReader Hafıza Disk girisakımı ornek.txt BufferedReader girisakımı = new BufferedReader( new FileReader(“ornek.txt”) );

Örnek: StringTokenizer Aşağıdaki karakterlerle ayrılmış kelimeleri gösterir: space, new line (\n), period (.) or comma (,). String inputLine = keyboard.nextLine(); StringTokenizer wordFinder = new StringTokenizer(inputLine, " \n.,"); while(wordFinder.hasMoreTokens()) { System.out.println(wordFinder.nextToken()); } Question 2b or !tooBee Giriş "Question,2b.or !tooBee." çıktı:

import java.util.StringTokenizer; public class App { public static void main(String[] args) { String Stut[]=new String[9]; String str = "This 10 String split, by StringTokenizer created by BLGM416"; StringTokenizer st = new StringTokenizer(str," ,"); int i=0; while (st.hasMoreElements()) { Stut[i]=st.nextToken(); System.out.println(Stut[i]); i++; }

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.

File sınıfının bazı metotları

Temel Binary (ikili 01) Dosyalar Binary bir dosyaya çıktı: ObjectOutputStream FileOutputStream Binary bir dosyadan giriş: ObjectInputStream FileInputStream FileOutputStream ve FileInputStream dosya isimlerini parametre olarak alırlar. Busınıfları kullanmak için aşağıdaki paket kullanılır: import java.io.*;

Yeni bir Binary çıktı dosyası oluşturma Dosya ismi String olarak verilir: Çıktı dosyası oluşturmak için: 1. FileOutputStream nesnesi dosya ismi ile ilişkilendirilir String Daha sonra FileOutputStream ObjectOutputStream nesnesine bağlanır

Örnek Veya ObjectOutputStream outputStream = new ObjectOutputStream( new FileOutputStream("numbers.dat")); Veya FileOutputStream middleman = new FileOutputStream("numbers.dat"); ObjectOutputStream outputStream = new ObjectOutputSteam(middleman); writeInt(int n) writeDouble(double x) writeBoolean(boolean b) etc.

ObjectInputStream inStream = new ObjectInputStream (new FileInputStream("numbers.dat")); Veya FileInputStream middleman = new FileInputStream("numbers.dat"); ObjectInputStream inputStream = new ObjectInputStream (middleman); readInt() readDouble() readBoolean() etc.

Javada Input/Output Dosya İşlemleri File Sınıfı; Bu sınıf dosyaya okuma yazma işlemleri yapmamız için yeterli değildir. Sadece dosya hakkında kullanışlı bilgiler elde etmemizi sağlar. Java dosyaları birer byte Streami olarak görür. Dosyalar end of file işaretcisi yada özel  bir byte nuamarıyla sonlanır. Dosya işlemi gerçekleştirilirken dosya için bir byte stream nesnesi oluşturulur. Java da dosya işlemlerini gerçekleştirebilmek için projeye java.io paketini import etmemiz gerekir. Bu paket içerisinde FileInputStream(byte tabanlı input), FileOutputStream(byte tabanlı output), FileReader(karakter tabanlı input) ve FileWriter(karakter tabanlı output) sınıflarını içerir. Aynı zamanda Java da dosya okuma işlemlerinde psrformans artışı sağlamak için buffering kullanılır. Bu yapıda tüm outputlar belleğin buffer isimli bir bölümüne kopyalanırlar. Bufferlama işlemi için de BufferedOutputStream(dosya çıktısını bufferlar) ve BufferedInputStream(dosya girdisini bufferlar) classları mevcuttur.

File Sınıfı-Örnek Javada Input/Output public class FileHakkinda { public static void main(String[] args) { // tam yolu tanımlayalım String path = "E:\\ornek.txt"; File file = new File(path); //verilen yol doğru mu değil mi? if(file.exists()) if(file.isFile()) System.out.println(file.getName() + " - bir dosyadır"); } System.out.println(file.length() + " - boyutu"); System.out.println(file.lastModified() + " - en son düzenlenme tarihi"); System.out.println(file.getPath() + " - yolu (path)"); if(file.isDirectory()) System.out.println(file.getName() + " - bir klasördür"); System.out.println("ve bu klasör içerisindeki dosyalar :"); String[] klasor = file.list(); for(String dosya : klasor) System.out.print(dosya + " "); System.out.println(""); else System.out.println("Böyle bir yol mevcut değildir."); } } }

FileInputStream-DosyaOkuma-Örnek Javada Input/Output FileInputStream-DosyaOkuma-Örnek public class Okuma { public static void main(String[] args) { int i; boolean eof = false; try { FileInputStream f = new FileInputStream("E:\\filmlerim.txt"); // do { while (!eof){ i = f.read(); if (i != -1) { System.out.print((char)i); } // } while (i != -1); } catch (IOException e) { System.out.println("Dosya acilamadi"); } }

BufferedReader-DosyaOkuma-Örnek Javada Input/Output BufferedReader-DosyaOkuma-Örnek public class Okuma2 { public static void main(String[] args) throws IOException { File file = new File("E:\\filmlerim.txt"); BufferedReader reader = null; reader = new BufferedReader(new FileReader(file)); String satir = reader.readLine(); while (satir!=null) { System.out.println(satir); satir = reader.readLine(); }

BufferedWriter-DosyayaYazma-Örnek Javada Input/Output BufferedWriter-DosyayaYazma-Örnek public class Yazma { public static void main(String[] args) { String giris; BufferedReader oku = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Lutfen adinizi soyadinizi girin:"); try { giris = oku.readLine(); //BufferedWriter fw = new BufferedWriter (new FileWriter("E:\\yaz.txt")); FileWriter fw = new FileWriter(new File("E:\\yaz.txt")); //PrintWriter out = new PrintWriter (fw); //out.println(giris); fw.write(giris); System.out.println(giris + " Dosyaya yazildi"); fw.close(); } catch (IOException e) { }