PATH INTERFACE, FILES CLASS, & STREAM API EĞİTİMİ

Modern Java ile dosya ve veriyi akıcı işle

Path ve Files ile NIO.2 dosya işlemleri, Channel ve ByteBuffer, lambda, Stream API ve özel Collector'larla modern Java veri işleme.

Path ve Files ile NIO.2 dosya işlemleri, Channel ve ByteBuffer, lambda, Stream API ve özel Collector'larla modern Java veri işleme. Katılımcılar IDE'de her konuyu kısa alıştırmalarla uygular ve eğitim sonunda log analizi yapan bir Java aracı geliştirir.

2 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Java NIO.2 Path ve Files sınıfı ile Stream API: dosya sistemi, I/O ve akış tabanlı veri işleme

Bu eğitim modern Java'da dosya sistemi ve koleksiyon işlemlerini birlikte ele alır. Path, resolve, relativize, Files.walk ve WatchService; Files.readAllLines, copy, move ve öznitelik API'si; I/O akışları, serileştirme, ByteBuffer ve FileChannel; lambda ve fonksiyonel arayüzler; Stream ara/uç işlemleri, Collectors.groupingBy, flatMap, teeing ve özel Collector yazımı işlenir. Son modülde log dosyalarını tarayan, gruplayan ve rapor yazan bir komut satırı aracı geliştirilir.

Süre ve Format

2 Gün. Her gün dört modül; katılımcılar NIO.2: Path, Files ve Kanallar → Lambda ve Stream API sırasıyla ilerler.

Seviye

Orta Seviye — Java NIO.2 Path ve Files sınıfı ile Stream API: dosya sistemi, I/O ve akış tabanlı veri işleme.

Öğrenme Metodu

Katılımcılar IDE'de her konuyu kısa alıştırmalarla uygular ve eğitim sonunda log analizi yapan bir Java aracı geliştirir.

Neden Bu Eğitim?

📂Modern Dosya İşleme

Eski java.io yerine NIO.2 ile güvenli ve okunur dosya kodu yazarsınız.

🌊Akış Düşüncesi

Döngüleri Stream hatlarına çevirip bildirimsel kod yazarsınız.

🧪Gerçek Araç

Dosya ve Stream bilgisini birleştiren çalışan bir araç geliştirirsiniz.

Anahtar Konular

Java NIO.2Path interfaceFiles sınıfıStream APIJava lambdaCollectors groupingByFileChannelWatchServiceJava dosya işlemleriJava 17 Stream
“İyi Java kodu, veriyi döngüyle değil akışla taşır.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Java Temelleri

Sınıf, arayüz, koleksiyon ve istisna yönetimi konularında temel Java bilgisi gerekir.

2
Nesne Yönelimli Kavramlar

Kalıtım, polimorfizm ve generics kavramlarına aşinalık beklenir.

3
Geliştirme Aracı

IntelliJ IDEA veya Eclipse ile proje açma / çalıştırma deneyimi faydalıdır.

4
Çalışma Ortamı

JDK 17+, Maven veya Gradle kurulu bir dizüstü bilgisayar hazır bulunmalıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı Path, Paths, Files.walk ve WatchService ile dosya sistemi işlemlerini yapar, Files.readAllLines, write, copy, move ve öznitelik API'sini kullanır, InputStream/OutputStream, Reader/Writer, tamponlama ve serileştirme konularını ele alır ve Channel, ByteBuffer, AsynchronousFileChannel ve CompletableFuture ile eşzamansız I/O yapar.
Modül 1
Path Arayüzü ve Dosya Sistemi Gezinme (NIO.2)
  • java.nio.file.Path oluşturma: Path.of, resolve, relativize, normalize ve toAbsolutePath
  • Path ile java.io.File karşılaştırması ve toPath() / toFile() dönüşümleri
  • Files.walk, Files.walkFileTree ve SimpleFileVisitor ile dizin ağacı gezinme
  • Files.list, newDirectoryStream ve glob desenleriyle filtreleme
  • WatchService ile dizin değişikliklerini (ENTRY_CREATE, ENTRY_MODIFY) izleme
  • Yol geçişi (path traversal) saldırısına karşı startsWith ve normalize kontrolü
Modül 2
Files Sınıfı ile Dosya Okuma, Yazma ve Öznitelikler
  • Files.readString, readAllLines, lines ve write; StandardOpenOption seçenekleri
  • BufferedReader / BufferedWriter, Charset ve UTF-8 kodlama tuzakları
  • Files.copy, move, delete ve REPLACE_EXISTING, ATOMIC_MOVE seçenekleri
  • BasicFileAttributes, PosixFilePermissions ve DosFileAttributes ile öznitelik okuma/yazma
  • Geçici dosyalar (createTempFile), try-with-resources ve kaynak sızıntısı önleme
  • Büyük dosyalar için FileChannel, MappedByteBuffer ve satır satır akışlı işleme
Modül 3
Java I/O Akışları ve Serileştirme
  • Bayt akışları (InputStream, OutputStream) ve karakter akışları (Reader, Writer) farkı
  • BufferedInputStream, DataInputStream, ObjectOutputStream ve dekoratör deseni
  • Serializable, serialVersionUID, transient alanlar ve serileştirme güvenlik riskleri
  • Charset, InputStreamReader ve platformdan bağımsız metin kodlaması
  • try-with-resources, AutoCloseable ve bastırılmış (suppressed) istisnalar
  • Java.io.File ile NIO.2 arasında geçiş ve eski kodun modernizasyonu
Modül 4
NIO.2 Kanalları, Tampon ve Eşzamansız Dosya İşlemleri
  • ByteBuffer: allocate, allocateDirect, flip, clear, compact ve position / limit ilişkisi
  • FileChannel ile transferTo / transferFrom ve bellek eşlemeli dosya (MappedByteBuffer)
  • AsynchronousFileChannel ile Future ve CompletionHandler tabanlı okuma / yazma
  • Dosya kilitleme (FileLock) ve eşzamanlı erişim senaryoları
  • CompletableFuture ile dosya işlerini zincirleme, thenCompose ve exceptionally
  • Sanal iş parçacığı (virtual thread) ile engelleyen dosya I/O'sunun ölçeklenmesi
Günün hedefiKatılımcı Lambda, metot referansı, Function/Predicate/Supplier ve Optional kullanımını ele alır, Stream ara ve uç işlemleri, Collectors ve paralel akışları ele alır, flatMap, teeing, özel Collector ve Spliterator ile ileri akış teknikleri uygular ve Günlük dosyalarını tarayan, filtreleyen ve raporlayan bir komut satırı aracı geliştirir.
Modül 1
Lambda İfadeleri ve Fonksiyonel Arayüzler
  • Lambda söz dizimi, etkin biçimde final değişkenler ve kapsam kuralları
  • java.util.function: Function, BiFunction, Predicate, Consumer, Supplier, UnaryOperator
  • Metot referansı türleri: statik, örnek, sınıf üzerinden ve yapıcı (Foo::new)
  • Function.andThen / compose ve Predicate.and / or ile birleştirilebilir mantık
  • Optional: map, flatMap, orElseGet, ifPresentOrElse ve anti-pattern'ler
  • Kendi fonksiyonel arayüzünüzü @FunctionalInterface ile tanımlama ve istisna taşıyan lambda çözümleri
Modül 2
Java Stream API ve Fonksiyonel İşleme
  • Stream oluşturma: collection.stream(), Stream.of, iterate, generate ve Files.lines
  • Ara işlemler: filter, map, flatMap, distinct, sorted, peek, limit, skip
  • Uç işlemler: collect, reduce, count, anyMatch, findFirst ve Optional ile güvenli sonuç
  • Collectors: groupingBy, partitioningBy, toMap, joining, summarizingInt ve downstream collector
  • Paralel akışlar: parallelStream, ForkJoinPool ve ne zaman yavaşlattığı
  • IntStream / LongStream ilkel akışlar, takeWhile / dropWhile ve akış tuzakları (tembel değerlendirme, yan etki)
Modül 3
İleri Stream İşlemleri ve Özel Collector'lar
  • flatMap ve mapMulti ile iç içe koleksiyonların düzleştirilmesi
  • Collectors.teeing, collectingAndThen, flatMapping ve filtering ile çok aşamalı toplama
  • Collector.of ile özel collector yazımı: supplier, accumulator, combiner, finisher
  • Spliterator, paralel bölme ve ForkJoinPool özel havuzu ile paralel akış ayarı
  • Akışlarda istisna yönetimi, kontrollü istisnaların sarmalanması ve sonsuz akışlar
  • Stream ile for döngüsü performans karşılaştırması ve JMH ile doğru ölçüm
Modül 4
Dosya ve Stream ile Uçtan Uca Uygulama
  • Bir dizindeki .log dosyalarını Files.walk ile bulup Files.lines ile satır satır okuma
  • Düzenli ifade ile erişim günlüğü ayrıştırma ve Record sınıfına eşleme
  • groupingBy ile durum kodu, IP ve saat bazlı dağılım hesaplama
  • En yavaş istekler için sorted / limit ve CSV / JSON rapor dosyası yazma
  • Birim testi: geçici dizin (@TempDir) ile dosya sistemi bağımsız test
  • Paketleme (jar), komut satırı argümanları (picocli) ve performans ölçümü

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
NIO.2 Path

NIO.2 Path arayüzüyle dosya yollarını güvenle işleyip dizin ağaçlarında gezinebilirsiniz.

🧩
Files Sınıfı

Files sınıfıyla dosya okuma, yazma, kopyalama ve öznitelik işlemlerini verimli yapabilirsiniz.

🛠️
Java I/O

Java I/O akışlarını tamponlayarak kullanıp nesneleri serileştirebilirsiniz.

🔐
Eşzamansız I/O

Channel ve ByteBuffer ile verimli, eşzamansız dosya işleme akışları kurabilirsiniz.

📈
Lambda ve Fonksiyonel

Lambda ve fonksiyonel arayüzlerle sade, bildirimsel Java kodu yazabilirsiniz.

🧪
Stream API

Stream API ile koleksiyon ve dosya verisini bildirimsel biçimde dönüştürüp toplayabilirsiniz.

🚀
İleri Stream

Özel Collector ve ileri akış tekniklerini karmaşık veri dönüşümlerinde kullanabilirsiniz.

🔎
Uygulama Projesi

Files ve Stream API'yi birleştiren bir günlük analiz aracı geliştirebilirsiniz.

Kimler İçin Uygundur?

  • Java geliştiricileri
  • Java 8'den modern sürümlere geçen ekipler
  • dosya işleme ile veri dönüştürme kodunu sadeleştirmek isteyenler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Java geliştiricileri, Java 8'den modern sürümlere geçen ekipler ve dosya işleme ile veri dönüştürme kodunu sadeleştirmek isteyenler için uygundur.
Hangi Java sürümü kullanılır?
Java 17 veya üzeri kullanılır; Java 21 ile sanal iş parçacığı kısaca gösterilir.
Java 8 bilgisi yeterli mi?
Temel bilgi yeterlidir; Java 9-17 yenilikleri eğitimde işlenir.
Paralel akışlar ele alınıyor mu?
Evet, parallelStream ve ForkJoinPool'un ne zaman yavaşlattığı ölçümle gösterilir.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir. Üçüncü taraf kurumların sınav ve sertifikalarıyla bir bağı yoktur.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Path Interface, Files Class, & Stream API Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

API ve Mikroservis MimarisiMikroservis Mimarisi ve Tasarım Desenleri Eğitimi
Yazılım Geliştirme Eğitimleri

Mikroservis Mimarisi ve Tasarım Desenleri Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Mikroservis mimarisi ve tasarım desenleri: DDD, CQRS, saga, gateway ve circuit breaker. 3 gün uygulamalı eğitim, DVA Katılım ve Başarı Sertifikası.

Detayları Gör →
API ve Mikroservis MimarisiMikroservis Mimarisine Giriş Eğitimi
Yazılım Geliştirme Eğitimleri

Mikroservis Mimarisine Giriş Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

Mikroservis mimarisine giriş: kavramlar, servis sınırları, iletişim ve dağıtım temelleri. 2 gün uygulamalı eğitim, DVA Katılım ve Başarı Sertifikası.

Detayları Gör →
API ve Mikroservis MimarisiMonolitik Uygulamalardan Mikroservislere Geçiş Eğitimi
Yazılım Geliştirme Eğitimleri

Monolitik Uygulamalardan Mikroservislere Geçiş Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

Monolitik uygulamaların mikroservislere dönüşümü: strateji, ayrıştırma, entegrasyon ve yayın. 4 gün uygulamalı eğitim, DVA Katılım ve Başarı Sertifikası.

Detayları Gör →
API ve Mikroservis MimarisiPatterns in Programming: API Design Patterns Eğitimi
Yazılım Geliştirme Eğitimleri

Patterns in Programming: API Design Patterns Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

API tasarım desenleri: kaynak modeli, yapısal ve davranışsal desenler, sözleşme ve dayanıklılık. 3 gün uygulamalı eğitim, DVA Katılım ve Başarı Sertifikası.

Detayları Gör →
API ve Mikroservis MimarisiPatterns in Programming: Patterns in API Programming Eğitimi
Yazılım Geliştirme Eğitimleri

Patterns in Programming: Patterns in API Programming Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

API programlamada desenler: yaratımsal, yapısal ve davranışsal desenler, istemci dayanıklılığı ve refactoring. 3 gün uygulamalı eğitim, DVA Katılım ve Başarı Se

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn