0Pricing
Java Academy · Ders

Files Yardımcı Sınıfı: Okuma, Yazma, Kopyalama, Taşıma

Yaygın dosya işlemleri için Files.readString, writeString, copy, move ve delete kullanın.

Files Yardımcı Sınıfı: Okuma, Yazma, Kopyalama, Taşıma, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.

Files Sınıfı

java.nio.file.Files sınıfı; dosyaları okuma, yazma, kopyalama, taşıma ve sorgulama için statik yardımcı yöntemler sağlar. Ayrıntılı FileInputStream/FileOutputStream şablon kodunun yerini alır.

import java.nio.file.*;
import java.io.IOException;

Path file = Path.of("example.txt");
// All Files methods throw IOException — handle or propagate

Dosyaları Okuma

Bir dosyanın tüm içeriğini okumak için modern yöntemler:

Path path = Path.of("notes.txt");

// Read as a single String (Java 11+)
String content = Files.readString(path);
System.out.println(content);

// Read as List of lines
List<String> lines = Files.readAllLines(path);
lines.forEach(System.out::println);

// Read as byte array
byte[] bytes = Files.readAllBytes(path);

Dosyaları Yazma

Bir String'i veya satır koleksiyonunu tek çağrıyla dosyaya yazın:

Path out = Path.of("output.txt");

// Write a String (overwrites by default)
Files.writeString(out, "Hello, NIO.2!");

// Write with StandardOpenOption.APPEND
Files.writeString(out, "\nAppended line", StandardOpenOption.APPEND);

// Write lines
List<String> lines = List.of("line1", "line2", "line3");
Files.write(out, lines);

Dosya Özelliklerini Denetleme

Dosyayı açmadan dosya meta verilerini sorgulayın:

Path path = Path.of("data.txt");

System.out.println(Files.exists(path));       // true/false
System.out.println(Files.isRegularFile(path)); // true if not dir
System.out.println(Files.isDirectory(path));   // true if dir
System.out.println(Files.isReadable(path));    // readable?
System.out.println(Files.size(path));          // bytes
System.out.println(Files.getLastModifiedTime(path));

Dosyaları Kopyalama

Files.copy(source, target) bir dosyayı kopyalar. Davranışı denetlemek için StandardCopyOption kullanın:

Path src = Path.of("original.txt");
Path dst = Path.of("backup.txt");

// Throws if destination exists (default)
Files.copy(src, dst);

// Overwrite if exists:
Files.copy(src, dst, StandardCopyOption.REPLACE_EXISTING);

// Copy preserving file timestamps:
Files.copy(src, dst, StandardCopyOption.COPY_ATTRIBUTES);

Dosyaları Taşıma ve Yeniden Adlandırma

Files.move() bir dosyayı taşır veya yeniden adlandırır. ATOMIC_MOVE ile atomik taşıma yapılabilir:

Path from = Path.of("temp.txt");
Path to   = Path.of("archive/report_2024.txt");

Files.move(from, to, StandardCopyOption.REPLACE_EXISTING);

// Rename in same directory:
Path renamed = from.resolveSibling("new_name.txt");
Files.move(from, renamed, StandardCopyOption.REPLACE_EXISTING);

Dosyaları Silme

İki silme yöntemi vardır — biri bulunamayan dosya için hata fırlatır, diğeri fırlatmaz:

Path file = Path.of("temp.txt");

// Throws NoSuchFileException if file doesn't exist:
Files.delete(file);

// Returns false if file didn't exist (no exception):
boolean deleted = Files.deleteIfExists(file);
System.out.println("Deleted: " + deleted);

Dizinler Oluşturma

Tüm ara dizinler dahil olmak üzere dizinler oluşturun:

Path dir = Path.of("output/reports/2024");

// Creates all missing intermediate directories:
Files.createDirectories(dir);

// Creates a single directory (fails if parent missing):
Files.createDirectory(Path.of("output/reports/2025"));

Geçici Dosyalar ve Dizinler

Geçici dosyaları güvenli biçimde oluşturun — JVM bunları temizleyebilir:

// Temp file in default temp directory
Path tmp = Files.createTempFile("prefix_", ".txt");
Files.writeString(tmp, "temp data");
System.out.println(tmp); // something like /tmp/prefix_12345.txt

// Temp directory
Path tmpDir = Files.createTempDirectory("work_");
System.out.println(tmpDir);

Files.lines ile Satırları Akışa Aktarma

Files.lines(), tembel bir Stream<String> döndürür — her şeyi belleğe yüklemediği için büyük dosyalarda readAllLines yönteminden daha iyidir:

try (var stream = Files.lines(Path.of("large.log"))) {
    long errorCount = stream
        .filter(l -> l.contains("ERROR"))
        .count();
    System.out.println("Errors: " + errorCount);
} // stream (and underlying reader) closed automatically

Sınıf Yolu Kaynaklarından Okuma

Kaynakları yüklemek için getClass().getResourceAsStream() ve NIO kopyalama işlemlerini birlikte kullanın:

try (var in = getClass().getResourceAsStream("/config.json")) {
    Path tmp = Files.createTempFile("config", ".json");
    Files.copy(in, tmp, StandardCopyOption.REPLACE_EXISTING);
    String json = Files.readString(tmp);
    System.out.println(json);
}

Hızlı Kontrol

Tüm satırları aynı anda belleğe yüklemeden büyük bir günlük dosyasını okumak için hangi yöntemi kullanmalısınız?

Özet: Files Yardımcı Programı

Temel çıkarımlar:

  • Files.readString/readAllLines/readAllBytes — dosyanın tamamını okur
  • Files.writeString/write — dize veya satır yazar
  • Files.copy/move with StandardCopyOption — kopyalama/yeniden adlandırma/taşıma
  • Files.delete/deleteIfExists — güvenli silme
  • Files.lines — büyük dosyalar için tembel akış (try-with-resources kullanın)

Sıkça Sorulan Sorular

“Files Yardımcı Sınıfı: Okuma, Yazma, Kopyalama, Taşıma” dersi ücretsiz mi?

Evet — “Files Yardımcı Sınıfı: Okuma, Yazma, Kopyalama, Taşıma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.

“Files Yardımcı Sınıfı: Okuma, Yazma, Kopyalama, Taşıma” dersinde ne öğreneceğim?

Yaygın dosya işlemleri için Files.readString, writeString, copy, move ve delete kullanın. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Files Yardımcı Sınıfı: Okuma, Yazma, Kopyalama, Taşıma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Path: Dosya Konumlarını Temsil Etme
  2. Files Yardımcı Sınıfı: Okuma, Yazma, Kopyalama, Taşıma
  3. Files.walk ile Dizin Ağaçlarında Gezinme
  4. WatchService: Dosya Değişikliklerini İzleme
← Java Academy Sayfasına Dön