การอ่านไฟล์ข้อความ

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 และข้อความแจ้งผิดพลาด, ซึ่งคุณควรจัดการเพื่อความเข้มแข็ง

ดูเพิ่มเติมได้ที่: