سؤال

أنا أستخدم طريقة console.setout لكتابة جميع console.out.writelines إلى ملف ، وهذا يعمل. المشكلة الوحيدة هي أنه يكتب كل شيء فقط إلى TextFile عندما أغلق طلبي بدلاً من الكتابة كلما حدث Console.out.Writeline. أي أفكار حول كيف يمكنني أن أدرك هذا؟

كيف أفعل ذلك: قبل application.run () ؛

FileStream writerOutput = new FileStream("Logging_Admin.txt", FileMode.Append, FileAccess.Write);
StreamWriter writer = new StreamWriter(writerOutput);
Console.SetOut(writer);

بعد application.run ():

writer.Dispose();

شكرًا.

هل كانت مفيدة؟

المحلول

ال StreamWriter سوف تخزن محتوياتها افتراضيا. إذا كنت تريد مسح المخزن المؤقت ، فيجب عليك الاتصال بـ Flush طريقة:

يمسح جميع المخازن المؤقتة للكاتب الحالي ويسبب كتابة أي بيانات مخزنة إلى الدفق الأساسي.

نصائح أخرى

StreamWriter لديه خاصية Autoflush. عند التعيين على TRUE ، يجب أن تحصل على النتيجة التي تحتاجها.

إذا كنت لا ترغب في الاتصال بالتدفق في كل مرة يدويًا ، فقد ترغب في التفكير في تنفيذ كائنك المشتق من Textwriter للقيام بذلك نيابة عنك.

لطرد المخزن المؤقت ، يمكنك القيام الكاتب. close () ؛

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top