From 9c3cd7817e7744664d426f28baadaa0bd35768d0 Mon Sep 17 00:00:00 2001 From: mmcetindag Date: Thu, 27 May 2021 12:22:37 +0300 Subject: [PATCH] java 102 --- java102/io-buffered-reader-writer/readme.md | 65 +++++++++++++++++ java102/io-file-reader-writer/readme.md | 53 ++++++++++++++ java102/io-inputstreamreaders/readme.md | 57 +++++++++++++++ java102/io-outputstreamwriter/readme.md | 77 +++++++++++++++++++++ java102/io-print-writer/readme.md | 30 ++++++++ java102/io-string-reader-writer/readme.md | 59 ++++++++++++++++ java102/lambda/readme.md | 4 ++ java102/readme.md | 13 +++- java102/type-casting/readme.md | 77 +++++++++++++++++++++ "oop/i\303\247erikler.md" | 2 +- 10 files changed, 435 insertions(+), 2 deletions(-) create mode 100644 java102/io-buffered-reader-writer/readme.md create mode 100644 java102/io-file-reader-writer/readme.md create mode 100644 java102/io-inputstreamreaders/readme.md create mode 100644 java102/io-outputstreamwriter/readme.md create mode 100644 java102/io-print-writer/readme.md create mode 100644 java102/io-string-reader-writer/readme.md create mode 100644 java102/lambda/readme.md create mode 100644 java102/type-casting/readme.md diff --git a/java102/io-buffered-reader-writer/readme.md b/java102/io-buffered-reader-writer/readme.md new file mode 100644 index 000000000..fd07477a7 --- /dev/null +++ b/java102/io-buffered-reader-writer/readme.md @@ -0,0 +1,65 @@ +# BufferedReader + +Java.io paketinin BufferedReader sınıfı, verileri (karakter olarak) daha verimli okumak için diğer okuyucularla birlikte kullanılabilir. Soyut Reader sınıfını +genişletir. + +BufferedReader, 8192 karakterlik bir dahili arabellek tutar. BufferedReader'daki okuma işlemi sırasında, diskten bir yığın karakter okunur ve dahili tamponda +saklanır ve dahili tampondan karakterler ayrı ayrı okunur. Böylelikle diskle iletişim sayısı azalır. BufferedReader kullanarak karakterleri okumak daha hızlı +olmasının nedeni budur. + +````java +import java.io.BufferedReader; +import java.io.FileReader; + +public class PatikaDev { + public static void main(String[] args) { + + try { + FileReader file = new FileReader("input.txt"); + BufferedReader input = new BufferedReader(file); + + String line; + while ((line = input.readLine()) != null) { + System.out.println(line); + } + + input.close(); + } catch (Exception e) { + e.getStackTrace(); + } + } +} + +```` + +# BufferedWriter + +Java.io paketinin BufferedWriter sınıfı, verileri (karakter olarak) daha verimli yazmak için diğer yazarlarla birlikte kullanılabilir. Writer soyut sınıfını +genişletir. + +````java + + +import java.io.BufferedWriter; +import java.io.FileWriter; + +public class PatikaDev { + public static void main(String[] args) { + String data = "Java 102 Dersleri"; + + try { + FileWriter file = new FileWriter("output.txt"); + + BufferedWriter output = new BufferedWriter(file); + + output.write(data); + + output.close(); + } catch (Exception e) { + e.getStackTrace(); + } + } +} + + +```` \ No newline at end of file diff --git a/java102/io-file-reader-writer/readme.md b/java102/io-file-reader-writer/readme.md new file mode 100644 index 000000000..980603029 --- /dev/null +++ b/java102/io-file-reader-writer/readme.md @@ -0,0 +1,53 @@ +# FileReader + +Java.io paketinin FileReader sınıfı, dosyalardan verileri (karakter olarak) okumak için kullanılabilir. InputStreamReader sınıfını genişletir. + +````java + +import java.io.FileReader; + +public class PatikaDev { + public static void main(String[] args) { + try { + FileReader input = new FileReader("input.txt"); + + int data = input.read(); + while (data != -1) { + System.out.print((char) data); + data = input.read(); + } + + input.close(); + } catch (Exception e) { + e.getStackTrace(); + } + } +} + + +```` + +# FileWriter + +Java.io paketinin FileWriter sınıfı, dosyalara (karakter olarak) veri yazmak için kullanılabilir. OutputStreamWriter sınıfını genişletir. + +````java + +import java.io.FileWriter; + +public class PatikaDev { + public static void main(String[] args) { + String data = "Patika Java102 Dersleri"; + + try { + FileWriter output = new FileWriter("output.txt"); + output.write(data); + + output.close(); + } catch (Exception e) { + e.getStackTrace(); + } + } +} + +```` \ No newline at end of file diff --git a/java102/io-inputstreamreaders/readme.md b/java102/io-inputstreamreaders/readme.md new file mode 100644 index 000000000..424cb20b6 --- /dev/null +++ b/java102/io-inputstreamreaders/readme.md @@ -0,0 +1,57 @@ +# Reader Sınıfı + +Java.io paketinin Reader sınıfı, bir karakter akışını (Characters Stream) temsil eden soyut bir üst sınıftır. + +Reader soyut bir sınıf olduğu için kendi başına kullanışlı değildir. Bununla birlikte, alt sınıfları verileri okumak için kullanılabilir. + +# InputStreamReader Sınıfı + +Java.io paketinin InputStreamReader sınıfı, bayt cinsinden verileri karakter cinsinden verilere dönüştürmek için kullanılabilir. Soyut Reader sınıfını +genişletir. + +InputStreamReader sınıfı, diğer giriş akışlarıyla (Input Streams) çalışır. Bayt akışları ve karakter akışları arasında bir köprü olarak da bilinir. Bunun +nedeni, InputStreamReader'ın giriş akışındaki baytları karakter olarak okumasıdır. + +Örneğin, bazı karakterlerin depoda depolanması için 2 bayt gerekiyordu. Bu tür verileri okumak için, 2 baytı birlikte okuyan ve karşılık gelen karaktere +dönüştürmek için InputStreamReader sınıfını kullanabiliriz. + +````java +// InputStream +FileInputStream file = new FileInputStream(String path); + +// InputStreamReader +InputStreamReader input = new InputStreamReader(file); + +```` + +````java +import java.io.InputStreamReader; +import java.io.FileInputStream; + +public class PatikaDev { + public static void main(String[] args) { + + char[] array = new char[100]; + + try { + // FileInputStream + FileInputStream file = new FileInputStream("input.txt"); + + // InputStreamReader + InputStreamReader input = new InputStreamReader(file); + + int data = input.read(); + while (data != -1) { + System.out.print((char) data); + data = input.read(); + } + + input.close(); + } catch (Exception e) { + e.getStackTrace(); + } + + } +} + +```` \ No newline at end of file diff --git a/java102/io-outputstreamwriter/readme.md b/java102/io-outputstreamwriter/readme.md new file mode 100644 index 000000000..8a2f1451c --- /dev/null +++ b/java102/io-outputstreamwriter/readme.md @@ -0,0 +1,77 @@ +# Writer Sınıfı + +Java.io paketinin Writer sınıfı, bir karakter akışını temsil eden soyut bir üst sınıftır. + +Writer soyut bir sınıf olduğu için kendi başına kullanışlı değildir. Bununla birlikte, alt sınıfları veri yazmak için kullanılabilir. + +# OutputStreamWriter + +Java.io paketinin OutputStreamWriter sınıfı, karakter biçimindeki verileri bayt biçimindeki verilere dönüştürmek için kullanılabilir. Writer soyut sınıfını +genişletir. + +OutputStreamWriter sınıfı, diğer çıktı akışlarıyla çalışır. Bayt akışları ve karakter akışları arasında bir köprü olarak da bilinir. Bunun nedeni, +OutputStreamWriter'ın karakterlerini bayta dönüştürmesidir. + +Örneğin, bazı karakterlerin depoda saklanması 2 bayt gerektirir. Bu tür verileri yazmak için, karakteri karşılık gelen baytlara dönüştüren ve baytları birlikte +depolaması için OutputStreamWriter sınıfını kullanabiliriz. + +````java +import java.io.FileOutputStream; +import java.io.OutputStreamWriter; + +public class PatikaDev { + public static void main(String[] args) { + + String data = "Patika ile Java102 Dersleri"; + + try { + // FileOutputStream + FileOutputStream file = new FileOutputStream("output.txt"); + + // OutputStreamWriter + OutputStreamWriter output = new OutputStreamWriter(file); + + output.write(data); + + output.close(); + } catch (Exception e) { + e.getStackTrace(); + } + } +} + +```` + +getEncoding() metodu, çıktı akışına veri yazmak için kullanılan kodlama türünü almak için kullanılabilir. Örneğin, + +````java + +import java.io.FileOutputStream; +import java.io.OutputStreamWriter; +import java.nio.charset.StandardCharsets; + +public class PatikaDev { + public static void main(String[] args) { + + try { + FileOutputStream file = new FileOutputStream("output.txt"); + + OutputStreamWriter output1 = new OutputStreamWriter(file); + + OutputStreamWriter output2 = new OutputStreamWriter(file, StandardCharsets.UTF_8); + + System.out.println("Character encoding of output1: " + output1.getEncoding()); + System.out.println("Character encoding of output2: " + output2.getEncoding()); + + output1.close(); + output2.close(); + } + + catch(Exception e) { + e.getStackTrace(); + } + } +} + + +```` \ No newline at end of file diff --git a/java102/io-print-writer/readme.md b/java102/io-print-writer/readme.md new file mode 100644 index 000000000..a03279794 --- /dev/null +++ b/java102/io-print-writer/readme.md @@ -0,0 +1,30 @@ +# PrintWriter + +Java.io paketinin PrintWriter sınıfı, çıktı verilerini yaygın olarak okunabilir bir biçimde (metin) yazmak için kullanılabilir. Writer soyut sınıfını +genişletir. + +Diğer Writer sınıflarının aksine, PrintWriter ilkel verileri (int, float, char, vb.) Metin formatına dönüştürür. Daha sonra bu biçimlendirilmiş verileri +Writer'a aktarır. + +Ayrıca, PrintWriter sınıfı herhangi bir girdi / çıktı istisnası (Exception) atmaz. Bunun yerine, içindeki herhangi bir hatayı bulmak için checkError() +metodu kullanmamız gerekir. + +````java + +import java.io.PrintWriter; + +public class PatikaDev { + public static void main(String[] args) { + String data = "Java 102 Dersleri."; + try { + PrintWriter output = new PrintWriter("output.txt"); + output.print(data); + output.close(); + } catch (Exception e) { + e.getStackTrace(); + } + } +} + + +```` \ No newline at end of file diff --git a/java102/io-string-reader-writer/readme.md b/java102/io-string-reader-writer/readme.md new file mode 100644 index 000000000..f6c99502e --- /dev/null +++ b/java102/io-string-reader-writer/readme.md @@ -0,0 +1,59 @@ +# StringReader + +Java.io paketinin StringReader sınıfı, String veri tiplerini (karakter olarak) okumak için kullanılabilir. Soyut Reader sınıfını genişletir. + +````java + +import java.io.StringReader; + +public class PatikaDev { + public static void main(String[] args) { + + String str = "Java 101 String Reader."; + + char[] array = new char[100]; + + try { + StringReader input = new StringReader(str); + + int data = input.read(); + while (data != -1) { + System.out.print((char) data); + data = input.read(); + } + input.close(); + } catch (Exception e) { + e.getStackTrace(); + } + } +} + + +```` + +# StringWriter + +Java.io paketinin StringWriter sınıfı, dize arabelleğine veri (karakter olarak) yazmak için kullanılabilir. Writer soyut sınıfını genişletir. + +`````java + +import java.io.StringWriter; + +public class PatikaDev { + public static void main(String[] args) { + + String data = "Java 102."; + + try { + StringWriter output = new StringWriter(); + output.write(data); + System.out.println("Data in the StringWriter: " + output); + output.close(); + } catch (Exception e) { + e.getStackTrace(); + } + } +} + + +````` \ No newline at end of file diff --git a/java102/lambda/readme.md b/java102/lambda/readme.md new file mode 100644 index 000000000..769c0ca36 --- /dev/null +++ b/java102/lambda/readme.md @@ -0,0 +1,4 @@ +## Lambda Expression + +Lambda ifadesi ilk kez Java 8'de tanıtıldı. Ana amacı dilin ifade gücünü artırmaktı. Ancak, lambdalara başlamadan önce, Fonksiyonel Interface konusunu anlamamız +gerekir. \ No newline at end of file diff --git a/java102/readme.md b/java102/readme.md index 23857f76a..5b65e5177 100644 --- a/java102/readme.md +++ b/java102/readme.md @@ -56,7 +56,18 @@ - [I/O Veri Akışları](io-stream/) - [FileInputStream Sınıfı](io-fileinputstream/) - [FileOutStream Sınıfı](io-fileoutputstream/) -- [ByteArrayInputStream ve ByteArrayOutputStream Sınıfı](io-bytearraystream/) +- [ByteArrayInputStream ve ByteArrayOutputStream Sınıfları](io-bytearraystream/) - [Serialization ve ObjectStream Sınıfları](io-objectstream/) - [BufferedInputStream ve BufferedOutputStream Sınıfları](io-bufferedstream/) - [PrintStream Sınıfı](io-printstream/) +- [InputStreamReader Sınıfı](io-inputstreamreaders/) +- [OutputStreamWriter Sınıfı](io-outputstreamwriter/) +- [FileReader ve FileWriter Sınıfları](io-file-reader-writer) +- [BufferedReader ve BufferedWriter Sınıfları](io-buffered-reader-writer) +- [StringReader ve StringWriter Sınıfları](io-string-reader-writer) +- [PrintWriter Sınıfı](io-print-writer) + +#### Diğer Faydalı Konular #### + +- [Tip Dönüşümleri](type-casting/) +- [Lambda Expressions](lambda/) diff --git a/java102/type-casting/readme.md b/java102/type-casting/readme.md new file mode 100644 index 000000000..00658265b --- /dev/null +++ b/java102/type-casting/readme.md @@ -0,0 +1,77 @@ +# Tip Dönüşümleri + +Bir veri tipini (int, float, double, vb.) başka bir veri türüne dönüştürme işlemi "Type Casting" denir. + +## Widening Casting (Otomatik) + +Küçük veri tipini daha büyük veri tipine dönüştürme işlemine denir. Genişletme Tipi Dönüşüm (Widening Casting) durumunda, daha düşük veri türü (daha küçük +boyuta sahip olan) daha yüksek veri türüne (daha büyük boyuta sahip) dönüştürülür. Dolayısıyla verilerde kayıp yoktur. Bu tür dönüşümünün otomatik olarak +gerçekleşmesinin nedeni budur. + +byte -> short -> char -> int -> long -> float -> double + +````java + +public class PatikaDev { + public static void main(String[] args) { + int myInt = 3; + double myDouble = myInt; // Otomatik Dönüştürme : int => double + + System.out.println(myInt); // Çıktısı 3 + System.out.println(myDouble); // Çıktısı 3.0 + } +} + +```` + +## Narrowing Casting (Manuel) + +Büyük veri tipini daha küçük veri tipine dönüştürme işlemine denir. + +double -> float -> long -> int -> char -> short -> byte + +````java + +public class PatikaDev { + public static void main(String[] args) { + double myDouble = 3.78; + int myInt = (int) myDouble; // Manuel Dönüştürme : double => int + + System.out.println(myDouble); // Çıktısı 3.78 + System.out.println(myInt); // Çıktısı 3 + } +} +```` + +### Integer => String Dönüşümü + +````java + +public class PatikaDev { + public static void main(String[] args) { + int num = 10; + System.out.println("Integer değer : " + num); + + String data = String.valueOf(num); + System.out.println("String Değer : " + data); + } +} + +```` + +### String => Integer Dönüşümü + +````java + + +public class PatikaDev { + public static void main(String[] args) { + String data = "15"; + System.out.println("String Değer : " + data); + + int num = Integer.parseInt(data); + System.out.println("Integer Değer : " + num); + } +} + +```` \ No newline at end of file diff --git "a/oop/i\303\247erikler.md" "b/oop/i\303\247erikler.md" index 10c8cacac..8002cc6b2 100644 --- "a/oop/i\303\247erikler.md" +++ "b/oop/i\303\247erikler.md" @@ -103,7 +103,7 @@ 3. Hangi programlama dili çoklu mirası (Multiple Inheritance) desteklemez? - C++ ve Java - - Cve C++ + - C ve C++ - Java ve Python - Java (Doğru)