Lua:
การอ่านไฟล์ข้อความ
วิธีการ:
มาดูกันว่าเราจะอ่านไฟล์ข้อความทีละบรรทัดแล้วค่อยๆ อ่านทั้งหมดพร้อมกันได้อย่างไร
-- อ่านไฟล์ทีละบรรทัด
local file = io.open("example.txt", "r") -- เปิดไฟล์เพื่ออ่าน
if file then
for line in file:lines() do -- วนซ้ำไปทีละบรรทัดในไฟล์
print(line)
end
file:close() -- ปิดไฟล์เมื่อคุณเสร็จสิ้น
else
print("ไม่สามารถเปิดไฟล์")
end
-- อ่านไฟล์ทั้งหมดพร้อมกัน
local file = io.open("example.txt", "r") -- เปิดไฟล์เพื่ออ่าน
if file then
local content = file:read("*a") -- อ่านเนื้อหาทั้งหมด
print(content)
file:close() -- ปิดไฟล์
else
print("ไม่สามารถเปิดไฟล์")
end
ผลลัพธ์ตัวอย่างสำหรับทั้งสองส่วน, หาก example.txt
ประกอบไปด้วย:
Hello, Lua!
ผลลัพธ์จะเป็น:
Hello, Lua!
ศึกษาเพิ่มเติม
แต่เดิม, การอ่านไฟล์เป็นการดำเนินการพื้นฐาน, ต่อยอดมาจากคอมพิวเตอร์ยุคแรกๆ ใน Lua, การนี้ถูกจัดการผ่านโมเดลของไอโอง่ายๆ กับไลบรารี io
ในขณะที่ io.lines
และ io.read
เป็นวิธีการทั่วไปในการเข้าถึงเนื้อหาของไฟล์, มีทางเลือกอื่นๆ เช่น lfs
(LuaFileSystem) สำหรับการดำเนินงานไฟล์ขั้นสูง
เมื่ออ่าน, Lua จัดการกับการบัฟเฟอร์อย่างลับๆ แต่สำหรับไฟล์ขนาดใหญ่, คุณควรอ่านเป็นชิ้นๆ เพื่อหลีกเลี่ยงการใช้หน่วยความจำสูง
การใช้ไลบรารี io
เป็นสิ่งที่ตรงไปตรงมา, แต่จำไว้เสมอว่าปิดไฟล์เพื่อป้องกันการรั่วไหลของทรัพยากร หากเกิดข้อผิดพลาด, การดำเนินการไฟล์ของ Lua จะคืนค่า nil
และข้อความแจ้งผิดพลาด, ซึ่งคุณควรจัดการเพื่อความเข้มแข็ง