Ruby打開關(guān)閉文件技巧分享
Ruby語言的出現(xiàn),可以幫助我們方便靈活的實(shí)現(xiàn)許多功能需求。它的應(yīng)用范圍也相當(dāng)廣泛,比如我們現(xiàn)在為大家介紹的Ruby打開關(guān)閉文件的一些技巧。#t#
類方法File.new 打開一個文件,并將它實(shí)例化為一個File對象,他的第一個參數(shù)是文件名.
Ruby打開關(guān)閉文件可選的第二個參數(shù)叫做 mode string(這個也是從c得來的).他的意思是怎樣打開一個文件(讀,寫或者其他的).默認(rèn)是'r'(也就是讀).
- file1 = File.new("one")
# Open for reading - file2 = File.new("two", "w")
# Open for writing
另外一種new的形式是三個參數(shù)的,其中第二個參數(shù)是指定了這個文件的原始的權(quán)限(經(jīng)常表示為一個八進(jìn)制的數(shù)).第三個參數(shù)是一系列Ored標(biāo)志的組合.標(biāo)志是個常量比如File:CREAT(如果文件不存在則創(chuàng)建它)和File:RDONLY(以只讀方式打開文件)。不過這種Ruby打開關(guān)閉文件形式很少使用:
- file = File.new("three",
0755, File::CREAT|File::WRONLY)
出于對操作系統(tǒng)和運(yùn)行環(huán)境的考慮,如果你打開了一個文件的話,你就必須關(guān)閉它。當(dāng)你打開一個文件用于寫時(shí),你更應(yīng)該這樣做,從而才能免于丟失數(shù)據(jù).close方法就是關(guān)閉一個文件:
- out = File.new("captains.log", "w")
- # Process as needed...
- out.close
這里還有一個open方法,它的最簡單的形式是和new同義的:
- trans = File.open("transactions","w")
但是open方法還能夠帶一個block作為參數(shù),當(dāng)存在block時(shí),打開的文件將會做為一個參數(shù)傳遞給block.這時(shí)這個文件將會在這個block的作用域里,保持打開,直到block結(jié)束時(shí),自動關(guān)閉:
- File.open("somefile","w") do |file|
- file.puts "Line 1"
- file.puts "Line 2"
- file.puts "Third and final line"
- end
以上就是Ruby打開關(guān)閉文件的相關(guān)技巧介紹。