Skip to content

يوفر Bun واجهة برمجة تطبيقات للكتابة التدريجية إلى ملف. هذا مفيد لكتابة الملفات الكبيرة، أو للكتابة إلى ملف على مدى فترة زمنية طويلة.

استدعِ .writer() على BunFile لاسترجاع مثيل FileSink. يمكن استخدام هذا المثيل لتخزين البيانات مؤقتًا بكفاءة و"تفريغها" دوريًا إلى القرص. يمكنك الكتابة والتفريغ عدة مرات.

ts
const file = Bun.file("/path/to/file.txt");
const writer = file.writer();

writer.write("lorem");
writer.write("ipsum");
writer.write("dolor");

writer.flush();

// الاستمرار في الكتابة والتفريغ

يمكن لطريقة .write() قبول سلاسل أو بيانات ثنائية.

ts
w.write("hello");
w.write(Buffer.from("there"));
w.write(new Uint8Array([0, 255, 128]));
writer.flush();

سيقوم FileSink أيضًا بالتفريغ التلقائي عندما تمتلئ الذاكرة المؤقتة الداخلية. يمكنك تكوين حجم الذاكرة المؤقتة مع خيار highWaterMark.

ts
const file = Bun.file("/path/to/file.txt");
const writer = file.writer({ highWaterMark: 1024 * 1024 }); // 1MB

عند الانتهاء من الكتابة إلى الملف، استدعِ .end() للتفريغ التلقائي للذاكرة المؤقتة وإغلاق الملف.

ts
writer.end();

الوثائق الكاملة: FileSink.

Bun بواسطة www.bunjs.com.cn تحرير