2012-05-19 33 views
14

Sorularımıza bir kod snipit'i eklememiz gerektiğini biliyorum, ancak ciddi bir şekilde şaşkınım ve kafamı kaplayamıyorum ya da takip edilecek herhangi bir örnek bulamıyorum.Java Dosyası - Bir Dosya Açın ve Yazın

Temel olarak, içinde içeriği olan C: \ A.txt dosyasını açmak ve sonunda bir dize yazmak istiyorum. Temelde böyle.

Dosya a.txt içerir:

kod örneğin
John 
Bob 
Larry 
Sue 

Maalesef beynim edilir: Dosya şimdi içerecek şekilde

John 
Bob 
Larry 

Bunu açık ve sonunda Sue yazmak istiyorum ölü bu sabah ....

+13

Bu gönderi geek-ve-poke! http://geek-and-poke.com/geekandpoke/2013/11/10/indirection – Lai

cevap

32

Lütfen Larry Page ve Sergey Brin tarafından dünyaya verilen Google numaralı telefondan arayın.

BufferedWriter out = null; 
try 
{ 
    FileWriter fstream = new FileWriter("out.txt", true); //true tells to append data. 
    out = new BufferedWriter(fstream); 
    out.write("\nsue"); 
} 
catch (IOException e) 
{ 
    System.err.println("Error: " + e.getMessage()); 
} 
finally 
{ 
    if(out != null) { 
     out.close(); 
    } 
} 
+11

İlk önce Google’ı kontrol ettim ve beni buraya yönlendirdi;) – Josh

11

Öneriler:

  • Varolan diskteki dosyaya başvuran File nesnesi oluşturun.
  • Bir FileWriter nesnesini kullanın ve Dosya nesnesini ve bir booleanı alan yapıcıyı kullanın; ikincisi, true varsa Dosyaya metin eklenmesine izin verir. Daha sonra, FileWriter öğesinde yapıcısına geçen bir PrintWriter dosyasını ilklendirin.
  • Ardından, Yazıcınızdaki println(...) numaralı telefonu arayarak yeni metninizi dosyaya yazabilirsiniz.
  • Her zaman olduğu gibi, işiniz bittiğinde kaynaklarınızı (PrintWriter) kapatın.
  • Her zaman olduğu gibi, özel durumları göz ardı etmeyin, aksine onları yakalayın ve kullanın.
  • PrintWriter öğesinin close(), deneyin sonuncu bloğunda olmalıdır. örneğin

,

PrintWriter pw = null; 

    try { 
    File file = new File("fubars.txt"); 
    FileWriter fw = new FileWriter(file, true); 
    pw = new PrintWriter(fw); 
    pw.println("Fubars rule!"); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } finally { 
    if (pw != null) { 
     pw.close(); 
    } 
    } 

Kolay, hayır?

3

bunu şöyle yapabiliriz, Bay Eels yorumun üzerine genişletmek için:

File file = new File("C:\\A.txt"); 
    FileWriter writer; 
    try { 
     writer = new FileWriter(file, true); 
     PrintWriter printer = new PrintWriter(writer); 
     printer.append("Sue"); 
     printer.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

biz sana daha iyi değil söyleme!

+3

1+ sizden, ancak baskı bloğunu son blokta, try bloğunda değil de kapatmayı unutmayın. Sarkan kaynakları istemiyorsunuz. Ne demek istediğimi görmek için örneğimi görün. –