国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

Ruby中處理文件的輸入和輸出的教程

2020-02-24 15:38:34
字體:
供稿:網(wǎng)友

Ruby具有出色的功能,是一種功能強大的文本處理語言,那么Ruby中處理文件的輸入和輸出的教程大家都清楚嗎?今天武林技術(shù)頻道小編為大家?guī)Ы榻B相關(guān)知識,一起來學(xué)習(xí)一下吧!
puts 語句

在前面的章節(jié)中,您賦值給變量,然后使用 puts 語句打印輸出。

puts 語句指示程序顯示存儲在變量中的值。這將在每行末尾添加一個新行。
實例

ruby;">#!/usr/bin/ruby val1 = "This is variable one"val2 = "This is variable two"puts val1puts val2

這將產(chǎn)生以下結(jié)果:

This is variable oneThis is variable two

gets 語句

gets 語句可用于獲取來自名為 STDIN 的標(biāo)準(zhǔn)屏幕的用戶輸入。
實例

下面的代碼演示了如何使用 gets 語句。該代碼將提示用戶輸入一個值,該值將被存儲在變量 val 中,最后會被打印在 STDOUT 上。

#!/usr/bin/ruby puts "Enter a value :"val = getsputs val

這將產(chǎn)生以下結(jié)果:

Enter a value :This is entered valueThis is entered value

putc 語句

與 puts 語句不同,puts 語句輸出整個字符串到屏幕上,而 putc 語句可用于依次輸出一個字符。
實例

下面代碼的輸出只是字符 H:

#!/usr/bin/ruby str="Hello Ruby!"putc str

這將產(chǎn)生以下結(jié)果:

H

print 語句

print 語句與 puts 語句類似。唯一的不同在于 puts 語句在輸出內(nèi)容后會跳到下一行,而使用 print 語句時,光標(biāo)定位在同一行。
實例

#!/usr/bin/ruby print "Hello World"print "Good Morning"

這將產(chǎn)生以下結(jié)果:

Hello WorldGood Morning

打開和關(guān)閉文件

截至現(xiàn)在,您已經(jīng)讀取并寫入標(biāo)準(zhǔn)輸入和輸出。現(xiàn)在,我們將看看如何操作實際的數(shù)據(jù)文件。
File.new 方法

您可以使用 File.new 方法創(chuàng)建一個 File 對象用于讀取、寫入或者讀寫,讀寫權(quán)限取決于 mode 字符串。最后,您可以使用 File.close 方法來關(guān)閉該文件。
語法

aFile = File.new("filename", "mode")  # ... 處理文件aFile.close

File.open 方法

您可以使用 File.open 方法創(chuàng)建一個新的 file 對象,并把該 file 對象賦值給文件。但是,F(xiàn)ile.open 和 File.new 方法之間有一點不同。不同點是 File.open 方法可與塊關(guān)聯(lián),而 File.new 方法不能。

File.open("filename", "mode") do |aFile|  # ... process the fileend

下表列出了打開文件的不同模式:

2015410113935321.jpg (579×646)

文件查詢

下面的命令在打開文件前檢查文件是否已存在:

#!/usr/bin/ruby File.open("file.rb") if File::exists?( "file.rb" )

下面的命令查詢文件是否確實是一個文件:

#!/usr/bin/ruby # 返回 <i>true</i> 或 <i>false</i>File.file?( "text.txt" )

下面的命令檢查給定的文件名是否是一個目錄:

#!/usr/bin/ruby # 一個目錄File::directory?( "/usr/local/bin" ) # => true # 一個文件File::directory?( "file.rb" ) # => false

下面的命令檢查文件是否可讀、可寫、可執(zhí)行:

#!/usr/bin/ruby File.readable?( "test.txt" )  # => trueFile.writable?( "test.txt" )  # => trueFile.executable?( "test.txt" ) # => false

下面的命令檢查文件是否大小為零:

#!/usr/bin/ruby File.zero?( "test.txt" )   # => true

下面的命令返回文件的大小:

#!/usr/bin/ruby File.size?( "text.txt" )   # => 1002

下面的命令用于檢查文件的類型:

#!/usr/bin/ruby File::ftype( "test.txt" )   # => file

ftype 方法通過返回下列中的某個值來標(biāo)識了文件的類型:file、 directory、 characterSpecial、 blockSpecial、 fifo、 link、 socket 或 unknown。

下面的命令用于檢查文件被創(chuàng)建、修改或最后訪問的時間:

#!/usr/bin/ruby File::ctime( "test.txt" ) # => Fri May 09 10:06:37 -0700 2008File::mtime( "text.txt" ) # => Fri May 09 10:44:44 -0700 2008File::atime( "text.txt" ) # => Fri May 09 10:45:01 -0700 2008

Ruby 中的目錄

所有的文件都是包含在目錄中,Ruby 提供了處理文件和目錄的方式。File 類用于處理文件,Dir 類用于處理目錄。
瀏覽目錄

為了在 Ruby 程序中改變目錄,請使用 Dir.chdir。下面的實例改變當(dāng)前目錄為 /usr/bin。

Dir.chdir("/usr/bin")

您可以通過 Dir.pwd 查看當(dāng)前目錄:
puts Dir.pwd # 返回當(dāng)前目錄,類似 /usr/bin

您可以使用 Dir.entries 獲取指定目錄內(nèi)的文件和目錄列表:

puts Dir.entries("/usr/bin").join(' ')

Dir.entries 返回一個數(shù)組,包含指定目錄內(nèi)的所有項。Dir.foreach 提供了相同的功能:

Dir.foreach("/usr/bin") do |entry|  puts entryend

獲取目錄列表的一個更簡潔的方式是通過使用 Dir 的類數(shù)組的方法:

Dir["/usr/bin/*"]

創(chuàng)建目錄

Dir.mkdir 可用于創(chuàng)建目錄:

Dir.mkdir("mynewdir")

您也可以通過 mkdir 在新目錄(不是已存在的目錄)上設(shè)置權(quán)限:

注意:掩碼 755 設(shè)置所有者(owner)、所屬組(group)、每個人(world [anyone])的權(quán)限為 rwxr-xr-x,其中 r = read 讀取,w = write 寫入,x = execute 執(zhí)行。

Dir.mkdir( "mynewdir", 755 )

刪除目錄

Dir.delete 可用于刪除目錄。Dir.unlink 和 Dir.rmdir 執(zhí)行同樣的功能,為我們提供了便利。

Dir.delete("testdir")

創(chuàng)建文件 & 臨時目錄

臨時文件是那些在程序執(zhí)行過程中被簡單地創(chuàng)建,但不會永久性存儲的信息。

Dir.tmpdir 提供了當(dāng)前系統(tǒng)上臨時目錄的路徑,但是該方法默認(rèn)情況下是不可用的。為了讓 Dir.tmpdir 可用,使用必需的 'tmpdir' 是必要的。

您可以把 Dir.tmpdir 和 File.join 一起使用,來創(chuàng)建一個獨立于平臺的臨時文件:

require 'tmpdir'  tempfilename = File.join(Dir.tmpdir, "tingtong")  tempfile = File.new(tempfilename, "w")  tempfile.puts "This is a temporary file"  tempfile.close  File.delete(tempfilename)

這段代碼創(chuàng)建了一個臨時文件,并向其中寫入數(shù)據(jù),然后刪除文件。Ruby 的標(biāo)準(zhǔn)庫也包含了一個名為 Tempfile 的庫,該庫可用于創(chuàng)建臨時文件:

require 'tempfile'  f = Tempfile.new('tingtong')  f.puts "Hello"  puts f.path  f.close

以上就是武林技術(shù)頻道給大家介紹的Ruby中處理文件的輸入和輸出的教程,希望能幫助你,我們還整理了更多專業(yè)的技術(shù)知識,讓你不再為學(xué)習(xí)這方面知識煩惱。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 丘北县| 拉萨市| 黑河市| 石阡县| 绥中县| 昭觉县| 贵南县| 内黄县| 夏邑县| 兴安盟| 嵊州市| 开阳县| 宜川县| 淮阳县| 沙田区| 浦北县| 岗巴县| 双辽市| 开封市| 文化| 玉门市| 九江县| 浦城县| 布尔津县| 高要市| 平罗县| 八宿县| 瑞丽市| 环江| 霍林郭勒市| 富顺县| 美姑县| 施甸县| 九江县| 枣阳市| 南川市| 平湖市| 宜君县| 普兰店市| 平顶山市| 平罗县|