Saya ingin menambahkan baris ke file saya. Saya menggunakan StreamWriter:
StreamWriter file2 = new StreamWriter(@"c:\file.txt");
file2.WriteLine(someString);
file2.Close();
Output dari file saya harus beberapa string di bawah satu sama lain, tetapi saya hanya memiliki satu baris, yang ditimpa setiap kali saya menjalankan kode ini.
Apakah ada cara untuk membiarkan StreamWriter menambahkan ke file yang ada?
c#
streamwriter
Waypoint
sumber
sumber
StreamWriter
. Sebuahusing
blok sintaks yang lebih baik untuk ini.using (var stream = new StreamWriter(..)) { stream.WriteLine(..); }
Jawaban:
Gunakan ini sebagai gantinya:
Dengan kelebihan konstruktor StreamWriter ini Anda pilih jika Anda menambahkan file, atau menimpanya.
C # 4 dan di atas menawarkan sintaks berikut, yang menurut beberapa orang lebih mudah dibaca:
sumber
sumber
Saya menganggap Anda mengeksekusi semua kode di atas setiap kali Anda menulis sesuatu ke file. Setiap kali aliran untuk file dibuka, pointer pencariannya diposisikan di awal sehingga semua penulisan akhirnya menimpa apa yang ada di sana sebelumnya.
Anda dapat memecahkan masalah dengan dua cara: baik dengan nyaman
atau dengan memposisikan sendiri penunjuk aliran secara eksplisit:
sumber
Coba ini:
sumber
Ganti ini:
dengan ini:
true
menunjukkan bahwa itu menambahkan teks.sumber
Gunakan konstruktor ini
StreamWriter
dengan parameter 2 -true
.sumber
Opsi lain menggunakan System.IO.File.AppendText
Ini sama dengan StreamWriter yang diberikan orang lain berlebihan.
File.AppendAllText juga dapat memberikan antarmuka yang sedikit lebih mudah tanpa harus khawatir tentang membuka dan menutup aliran. Meskipun Anda mungkin perlu khawatir tentang menempatkan di linebreak Anda sendiri. :)
sumber
Sebenarnya hanya jawaban Jon (5 Sep 11 'jam 9:37) dengan BaseStream. Carilah yang bekerja untuk kasus saya. Terima kasih jon! Saya perlu menambahkan baris ke file txt yang diarsipkan zip.
sumber
Satu lagi cara sederhana adalah menggunakan
File.AppendText
itu menambahkan teks yang disandikan UTF-8 ke file yang ada, atau ke file baru jika file yang ditentukan tidak ada dan mengembalikanSystem.IO.StreamWriter
sumber
Ganti baris ini:
dengan kode ini:
dan kemudian tulis baris Anda ke file teks seperti ini:
sumber