Şimdi Ara

Java TXT Dosyası Metnin Başına Yazma Nasıl Yapılır

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
761
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Örneğin Şöyle tuttuğumuz bi metin var
    İlk:satir:burasi;
    İkinci:satir:burasi;

    ben Ucuncu:satir:burasi; satırını dosyanın başına nasıl eklerim yani bu satır yazıldıktan sonra dosya şu şekilde olacak

    Ucuncu:satir:burasi;
    İlk:satir:burasi;
    İkinci:satir:burasi;



  • Dosyanın en başına satır eklemek çoğu dilde yapılabilen bir şey değil (hatta hiçbirinde değil aslında da bazıları özel fonksiyon tanımlamış olabiliyor). Onun yerine şunu yapmak gerekli:

    1. yeni bir dosya oluştur
    2. yeni dosyaya başa ekleyeceğin satırları ekle
    3. başına satır eklenecek dosyayı aç
    4. tüm içeriğini yeni dosyaya satır satır ekle
    5. eski dosyayı sil
    6. yeni dosyayı yeniden isimlendir

    İşletim sistemleri dosyaları bu istediğin şekilde shift etmene izin vermiyorlar. Eski dosyanın üzerine yazma (overwriting denen) işlemi yapabiliyorsun ama ekleme yapamazsın malesef.
  • quote:

    Orijinalden alıntı: seyfi84

    tipik C alıştırmalarını Java ile yapmaya mı çalışıyorsun? öyle Java çalışma.
    düz dosya işlemlerinin hiçbir pratik faydası yok Java'da. Xml kullan, JSON kullan, INI benzeri bir yapı olan properties kullan, biraz daha sofistike işler için veritabanı(SQLite, vs) hepsi için standart class'lar metotlar var.

    Soruyu soran bisiklete nasıl binerim diyor sen motosiklet kullan, araba kullan, hatta SUV kullan diyorsun.
  • candle-lit.fire C kullanıcısına yanıt
    Harddisk 'in sana sundugu 2 hizmet var, yazma ve okuma.
    Dosyanin basina yazmak diye bir sey yok. Dosyanin uzerine yeniden yazman gerek, tamamini. Dosyadaki tum satirlari okuyup, yeniden dosyaya yazarken ilk yazmak istedigin sey ile baslayarak yazacaksin. Tum editorler boyle yapiyorlar. Bugun word dosyasinda 40 bin kelimelik bir dosyayi acip en basa bir sey yazdiginda tum karakterlerin yeri degisiyor. Bu da onun gibi.
    ---
    Nasil yapacagiz peki ? Core Java ile dosyadan okuma yapabildigini varsayiyorum. Okudugum ve String olarak elinde tuttugun variable icerisinde, satir sonlarina gore split yaparak satirlara ayirabilirsin. Ancak, Windows ve Unix sistemleri satir sonlarini ifade etmek icin farkli semboller kullanir. Java'nin kendisi de platform independant mantikta oldugu icin System.lineSeperator() ( JDK 1.7 + ) ya da System.getProperty(line.seperator) ( JDK 1.7 - ) ya da biraz hack yontemi ama String.format("%n"); karakterlerini kullanarak split edebilirsin.

    final String newLine = System.lineSeperator();
    String dosyaIcerigi = ..... // okudun aldin dosyadaki her seyi
    String[] lines = dosyaIcerigi.split(newLine); // dosyadaki text i satirlara ayirdin, arraydeki her eleman 1 satira denk geliyor sirasi ile
    String basaEklenecekText = "basaEklenecekText" + newLine; // eklemek istedigin sey her neyse sonunda platform independant satir ayirmacasi

    Sonrasinda basaEklenecekText ile baslayarak dosyaya bizim array i yazacaksin. Array olusturdum ki oradan belirli bir satir numarasi ile alip basa yazmak istersin diye. Yoksa son satirdaki kod ile de yaparsin.
    Bu core Java ile. Apache'nin IOUtils ve FileUtils isimli cok guzel 2 tane util class i var. Bunlari commons-io da bulabilirsin. Orada File.readByLines() seklinde bir metod var, kendi icerisinde platform bagimsiz hesaplamalari hallediyor.
    Direkt File.readFileToString() gibi bir metodu var. Bunlari kullanarak 3 satirda halledebilirsin tekerlegi yeniden icat etmeden.

    Ama ogrenmek icin once kendin yazarsan daha mantikli bana sorarsan.

    < Bu ileti tablet sürüm kullanılarak atıldı >




  • en basit yol.
    1- Önce içindeki herşeyi oku sırala
    2- Sonra tekrar yaz.

    yoksa hali hazırda git satır başına yaz diye bir komut yok.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.