write_through=True تمرر الكتابة إلى المخزن الثنائي؛ لا تفرغ BufferedWriter في تجربتنا. [1]
الخلاصة السريعة
لا؛ المخزن الثنائي يحتفظ بالبايتات هنا. [1]
- write_through=True تمرر الكتابة إلى المخزن الثنائي؛ لا تفرغ BufferedWriter في تجربتنا. [1]
- على CPython 3.12.14، نغلف BytesIO عبر BufferedWriter بحجم 16 بايت، ثم TextIOWrapper بترميز utf-8. [1]
- text.write("bud") تكتب ثلاثة محارف؛ raw.getvalue() تعطي b"" قبل التفريغ، رغم تفعيل write_through. [1]
- binary.flush() تنقل البايتات المحتفظ بها؛ بعدها raw.getvalue() تعطي b"bud". [1]
- تحكم دون BufferedWriter: غلاف نصي على BytesIO مباشرة، بالإعدادين نفسيهما، يعطي b"bud" بعد الكتابة. المثال في الذاكرة فقط؛ لا يختبر حفظ القرص. [1]
تمرير وتفريغ
write_through=True تمرر الكتابة إلى المخزن الثنائي؛ لا تفرغ BufferedWriter في تجربتنا. [1]
طبقتا المثال
على CPython 3.12.14، نغلف BytesIO عبر BufferedWriter بحجم 16 بايت، ثم TextIOWrapper بترميز utf-8. [1]
قبل التفريغ
text.write("bud") تكتب ثلاثة محارف؛ raw.getvalue() تعطي b"" قبل التفريغ، رغم تفعيل write_through. [1]
import io raw=io.BytesIO() binary=io.BufferedWriter(raw,buffer_size=16) text=io.TextIOWrapper(binary,encoding="utf-8",write_through=True) print(text.write("bud"),raw.getvalue()) [1]

التفريغ والتحكم
binary.flush() تنقل البايتات المحتفظ بها؛ بعدها raw.getvalue() تعطي b"bud". [1]
binary.flush() print(raw.getvalue()) direct=io.BytesIO() control=io.TextIOWrapper(direct,encoding="utf-8",write_through=True) control.write("bud") print(direct.getvalue()) [1]
تحكم دون BufferedWriter: غلاف نصي على BytesIO مباشرة، بالإعدادين نفسيهما، يعطي b"bud" بعد الكتابة. المثال في الذاكرة فقط؛ لا يختبر حفظ القرص. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
