Inherited from v1.0.0

io মডিউল

ফাইল ও ডিরেক্টরি প্রিমিটিভ। প্রতিটি blocking কলের একটি async counterpart (*_async) আছে; খুব বড় ফাইলের জন্য streaming open_read / open_write ব্যবহার করুন।

import "io" as io;

io.write_file("greeting.txt", "Hello!");
print(io.read_file("greeting.txt"));

Sync ফাইল I/O

ফাংশনবর্ণনা
io.read_file(path) → stringপুরো ফাইল একটি স্ট্রিং-এ পড়ুন।
io.write_file(path, data)ফাইল data দিয়ে ওভাররাইট করুন।
io.append_file(path, data)data অ্যাপেন্ড; না থাকলে তৈরি।

Async ফাইল I/O

*_async ফাংশন একটি Future ফেরত দেয় — wait-এর সাথে ব্যবহার করুন।

ফাংশনবর্ণনা
io.read_file_async(path) → Future<string>Main thread-এর বাইরে পড়ে; বড় ফাইলের জন্য।
io.write_file_async(path, data) → Future<null>Main thread-এর বাইরে লেখে।
function copy() {
    var data = wait io.read_file_async("big.bin");
    wait io.write_file_async("big.copy.bin", data);
}

Streaming

open_read / open_write এমন stream ফেরত দেয় যার read / write নিজেও Future-returning। নিচু-স্তরের কোডের জন্য callback-style পদ্ধতিগুলো native _io module-এ এখনো পাওয়া যায়।

ফাংশনবর্ণনা
io.open_read(path) → streamstream.read(size)Future<chunk>; chunk == null মানে EOF। stream.close() sync।
io.open_write(path) → streamstream.write(data)Future<null>stream.close() sync — flush-এর জন্য কল করুন।

Native _io (advanced)

Native module-টা _io নামেও উপলব্ধ — নিচু-স্তরের callback-style কোডের জন্য (lib ভেতরে এটা ব্যবহার করে)। সাধারণত import "io" ব্যবহার করুন।

মেটাডেটা

ফাংশনবর্ণনা
io.exists(path) → boolপাথ থাকলে true।
io.is_file(path) → bool
io.is_dir(path) → bool
io.stat(path) → map{bytes, mtime, is_file, is_dir}। অনুপস্থিত হলে throw।

ডিরেক্টরি

ফাংশনবর্ণনা
io.mkdir(path)মধ্যবর্তী parents স্বয়ংক্রিয়ভাবে তৈরি।
io.list_dir(path) → listএন্ট্রি নাম (কোনো . / .. নেই)।
io.remove(path)ফাইল বা ডিরেক্টরি; ডিরেক্টরির জন্য recursive
io.rename(from, to)
io.copy_file(from, to)

আরও দেখুন