Haskell:
สร้างไฟล์ชั่วคราว
วิธีทำ:
Haskell มีแพ็กเกจ temporary
ซึ่งรวมฟังก์ชั่นที่มีประโยชน์สำหรับการดำเนินการกับไฟล์ชั่วคราว นี่คือตัวอย่างการใช้งานอย่างรวดเร็ว:
import System.IO.Temp (withSystemTempFile)
import System.IO (hPutStrLn, hClose)
main :: IO ()
main = withSystemTempFile "mytemp.txt" $ \tempFilePath tempFileHandle -> do
-- เขียนข้อความลงไปในไฟล์ชั่วคราว
hPutStrLn tempFileHandle "Hello, temporary file!"
-- ปิดไฟล์ (จะเกิดขึ้นโดยอัตโนมัติเช่นกัน!)
hClose tempFileHandle
putStrLn $ "ไฟล์ชั่วคราวถูกสร้างขึ้นที่: " ++ tempFilePath
ตัวอย่างผลลัพธ์:
ไฟล์ชั่วคราวถูกสร้างขึ้นที่: /tmp/mytemp.txt123456
ลงลึกเพิ่มเติม
ในอดีต, การจัดการไฟล์ชั่วคราวอาจจะเป็นเรื่องยากและเสี่ยงต่อเงื่อนไขการแข่งขัน—สองโปรแกรมพยายามที่จะสร้างหรือใช้ไฟล์เดียวกัน ด้วยเหตุนี้, แพ็กเกจ temporary
ของ Haskell จึงถูกสร้างขึ้น มันให้ฟังก์ชั่นเช่น withSystemTempFile
, ซึ่งสร้างไฟล์ชั่วคราวและกำจัดออกเมื่อคุณเสร็จสิ้นการใช้งาน นี้เป็นสิ่งที่ดีมากสำหรับการรักษาระบบการดำเนินการไฟล์ของคุณให้เรียบร้อยและมีระเบียบ
มีทางเลือกอื่นๆ เช่นการใช้แพ็กเกจ unix
สำหรับการดำเนินการไฟล์ที่ซับซ้อน, แต่ temporary
ช่วยทำให้ความซับซ้อนลดลง temporary
นำเสนอชื่อไฟล์ที่ไม่ซ้ำกัน ขอบคุณฟังก์ชั่นภายใน ไม่มีไฟล์ชั่วคราวสองไฟล์ที่จะขัดแย้งกัน, ทำให้ชีวิตของคุณง่ายขึ้น
มนตร์ของการเข้าหาของ Haskell รวมถึงลักษณะฟังก์ชั่นของมัน, ทำให้แน่ใจว่าผลกระทบข้างเคียง, เช่นการสร้างไฟล์, ถูกจัดการอย่างระมัดระวัง มันอาศัยระบบประเภทของมันและ IO monad เพื่อจัดการทรัพยากรอย่างมีความรับผิดชอบ
ดูเพิ่มเติม
- เอกสารการใช้งาน
System.IO.Temp
: เอกสารอย่างเป็นทางการสำหรับฟังก์ชั่นไฟล์ชั่วคราว - Real-World Haskell, บทที่ 7, I/O: หน้าตอนหนังสือที่อธิบาย Haskell I/O, ซึ่งครอบคลุมการสร้างไฟล์ชั่วคราวอย่างละเอียดยิ่งขึ้น