std.fs
API summary (generated from the Beans source by npm run coverage): 7 package functions.
std.fs এক-কলে পুরো ফাইল পড়া বা লেখার helper দেয়। ভেতরে ভেতরে এটা একটা
File খোলে, কাজটা করে, আর বন্ধ করে দেয়। সোর্স পড়ুন
stdlib/std/fs/fs.b-তে।
প্রতিটা function একটা Result ফেরত দেয়, কারণ
filesystem-এর কাজ ফেল করতে পারে। error উপরে পাঠাতে ? ব্যবহার করুন।
import std.fsপড়া
“পড়া” সেকশনpub fn read_bytes(path: string) -> Result<Bytes>pub fn read(path: string) -> Result<string>read_bytesফাইলটা খোলে, offset 0 থেকে পুরোটা পড়ে, আর bytes ফেরত দেয়।readএকই কাজ করে আর তার ফেরত দেওয়া string-টা সরাসরি ভরে দেয়। এটা মাঝখানে কোনোBytesvalue বানায় না।
লেখা
“লেখা” সেকশনpub fn write_bytes(path: string, data: Bytes) -> Result<int>pub fn write(path: string, data: string) -> Result<int>pub fn append_bytes(path: string, data: Bytes) -> Result<int>pub fn append(path: string, data: string) -> Result<int>pub fn copy(from: string, to: string) -> Result<int>পাঁচটাই কত byte লেখা হলো সেটা ফেরত দেয়।
write_bytesআরwriteফাইলটা “create” মোডে খোলে, খালি করে ফেলে, আর position 0 থেকে লেখা শুরু করে।writeএকটা string নেয়;write_bytesBytesনেয়। Text লেখার সময় সরাসরি string storage ব্যবহার হয়।append_bytesআরappendফাইলটা “append” মোডে খোলে আর খালি না করেdata-কে শেষে যোগ করে।copyযেখানে পারে সেখানে প্ল্যাটফর্মের file-copy পথ ব্যবহার করে, নয়তো একটা fixed-size fallback। এটা পুরো সোর্স ফাইলকে কোনো Beans বাফারে ধরে রাখে না। একই-ফাইল বা hard-link কপি destination খালি হওয়ার আগেই ফেল করে।
import std.ioimport std.fs
fn main() { fs.write("greeting.txt", "hello\n").expect("write") fs.append("greeting.txt", "again\n").expect("append") let text: string = fs.read("greeting.txt").expect("read") io.print(text) // hello / again}আরও দেখুন
“আরও দেখুন” সেকশন- Files and mapping —
Filetype, যখন positional আর cursor I/O-র জন্য আরও সূক্ষ্ম নিয়ন্ত্রণ লাগে। - std.path — এখানে যে path স্ট্রিং পাঠানো হয়, সেগুলো তৈরি করা।
- std.reader — একবারে পুরোটা না পড়ে একটা ফাইল লাইন ধরে ধরে পড়া।