Soru & Cevap

Binary dosyaya nasıl create edilmeden veri yazılabiliyor? ...

06.05.2017 - 12:15

Merhaba,

Aşağıda txt dosya yazarken createNewFile fonksiyonu ile dosya oluşturulmuş.

        String str = "Bunu dosyaya yazdir";

        File file = new File("dosya.txt");
        if (!file.exists()) {
            file.createNewFile();
        }

        FileWriter fileWriter = new FileWriter(file, false);
        BufferedWriter bWriter = new BufferedWriter(fileWriter);
        bWriter.write(str);
        bWriter.close();

Ancak binary dosyada create etmeden veri yazılabilmiş, neden create etmeye ihtiyaç yok?

byte[] data = {0x01, 0x02};

File binaryFile = new File("binary.dat");
FileOutputStream fos = new FileOutputStream(binaryFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
bos.write(data);
bos.close();

Teşekkürler..

37 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user bthnorhan
bthnorhan
06.05.2017 - 08:08

Merhabalar öncelikle. 

2. kod parçacığında telefon hafızasında bulunan bir dosyayı açıp onun içine datayı yazmaktadır. Dosya zaten telefonda bulunduğu için create etmiyor. Ama ilk kod parçacığında ise "dosya.txt" adında bir dosya oluşturup onun içine veriyi yazıyor bundan dolayı create ediyor. Umarım anlatabilmişimdir. İyi günler.

Jay
08.05.2017 - 12:22
İlginiz için teşekkür ederim. Şunu farkettim FileWriter fileWriter = new FileWriter(file, false); kodu aslında dosyayı da oluşturuyor, yani createNewFile fonksiyonunu kullanmaya gerek yok. Sadece spesifik olarak belirtmek için sanırım elle de oluşturmuşlar.
Batuhan Orhan
08.05.2017 - 01:13
Tekrar merhabalar. https://developer.android.com/reference/java/io/FileWriter.html#FileWriter(java.lang.String, boolean) bu linkteki referansı inceledim. FileWriter fileWriter = new FileWriter(file, false); kısmındaki false'ın sadece dosyanın üzerine mi yazılacağını yoksa dosya bitimine ekleneceğini mi belirttiğini anladım. Cevabımda belirttiğim gibi zaten var olan bir dosya olduğu için createNewFile fonksiyonunu kullanmıyor. Tekrardan incelemenizi isterim. Kolay gelsin. İyi günler.