Java Eğitimi 34- Stream Nedir, Nasıl Kullanılır?

Merhaba,

Bu yazımda Java’daki veri akışlarını inceleyeceğiz. Java’da bir dosyaya veriyi nasıl yazdırırız? Veriyi yazdırdıktan sonra o veriyi nasıl okuruz? İşte bu bölümde bu sorulara cevap arayacağız.

Java’daki dosya işlemi sınıflarını 4 farklı kategoride işleyebiliriz: InputStream, OutputStream, Reader ve Writer. Bu yazıda InputStream ve OutputStream sınıflarını göreceğiz. Bir veri okumak istediğimizde InputStream, bir veri yazmak istediğimizde de OutputStream sınıfını kullanırız. 

1-Outputstream: Java’daki çıkış işlemlerini sağlar. Bir yerden başka bir yere akan verilerdir. Bu veriler byte dizileri halindedir. 

Yukarıdaki şemada OutputStream sınıfının alt sınıflarını paylaştım. OutputStream sınıfı InputStream sınıfının karşılığıdır. Çıkış akımı sınıflarının üst sınıfıdır diyebiliriz. Yani çıkış birimi için akım yazmaya ihtiyaç duyduğumuzda işe yarar değişken, metot gibi şeyleri OutputStream sınıfı karşılar. 

2- InputStream: Byte tabanlı bir sınıftır. Byte dizilerinin ya da byte’ların tek tek okunmasını sağlar. Soyut bir sınıftır. Kaynaktan alınan veriye nasıl erişeceği ile ilgilenir. Önceki bölümlerden hatırlayacak olursanız, sınıfları object sınıfından türetiyorduk. Kaynakta yer alan veri tipine göre de bir alt sınıf seçilir ve  oradan gelen veriler için giriş akımı yaratarak veri belleğine aktarılır. InputStream’in alt sınıfları şu şekildedir:

InputStream’in alt sınıflarından biri olan FilterInputStream de kendi arasında 4’e ayrılır. Bunlar BufferedInputStream, DataInputStream, LineInputStream ve PushbankInputStream’dir.

BufferedReader:BufferedReader tarafından okunan veriler, ilgili karakter ya da byte dizilerine dönüşür. Dönüşüm yapılırken FileReader/InputStreamReader gibi sınıflar aktifleştirir. O halde BufferedReader’ı örneklerle daha anlamlı hale getirelim.

import java.io.*;
public class veri {

public static void main(String[] args) throws IOException {
InputStreamReader veri = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(veri);
String line;
System.out.println("Lütfen bir satır giriniz :");
while ((line = input.readLine()) != null) {
System.out.println(line);
}
}
}
import java.io.*;

public class veriler {
public static void main(String[] args) throws Exception {
StringBufferInputStream obj = new StringBufferInputStream("internet");
System.out.println("İNTERNET kelimesini harflerine ayıralım: ");
System.out.println("İstenen nesnenin ilk harfi : " + (char) obj.read());
System.out.println("İkinci harfi : " + (char) obj.read());
System.out.println("Üçüncü harfi : " + (char) obj.read());
System.out.println("Dördüncü harfi : " + (char) obj.read());
obj.reset(); // karakterler okunduktan sonra reset() ile silindi
System.out.println("Veriler silindikten sonra okunan ilk karakter : " + (char) obj.read());
}
}
import java.io.*;
public class ornek {
public static void main(String[] args) throws IOException {
BufferedReader deger = new BufferedReader(new InputStreamReader(System.in));
String ad;
String tarih;
System.out.println("Adınızı ve soyadınızı giriniz: ");
ad=deger.readLine();
System.out.println(ad);
System.out.println("Doğum tarihiniz nedir?: ");
tarih=deger.readLine();
System.out.println(tarih);

}
}

Bir sonraki yazıda daha farklı sorularla devam edeceğim. Hoşça kalın. 

Yorum bırakın