亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Ruby > 正文

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

2020-10-29 19:41:25
字體:
來源:轉載
供稿:網友

Ruby 提供了一整套 I/O 相關的方法,在內核(Kernel)模塊中實現。所有的 I/O 方法派生自 IO 類。

類 IO 提供了所有基礎的方法,比如 read、 write、 gets、 puts、 readline、 getc 和 printf。

本章節將講解所有 Ruby 中可用的基礎的 I/O 函數。如需了解更多的函數,請查看 Ruby 的 IO 類。
puts 語句

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

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

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

這將產生以下結果:

This is variable oneThis is variable two

gets 語句

gets 語句可用于獲取來自名為 STDIN 的標準屏幕的用戶輸入。
實例

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

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

這將產生以下結果:

Enter a value :This is entered valueThis is entered value

putc 語句

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

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

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

這將產生以下結果:

H

print 語句

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

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

這將產生以下結果:

Hello WorldGood Morning

打開和關閉文件

截至現在,您已經讀取并寫入標準輸入和輸出?,F在,我們將看看如何操作實際的數據文件。
File.new 方法

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

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

File.open 方法

您可以使用 File.open 方法創建一個新的 file 對象,并把該 file 對象賦值給文件。但是,File.open 和 File.new 方法之間有一點不同。不同點是 File.open 方法可與塊關聯,而 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

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

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

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

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

下面的命令返回文件的大?。?br />

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

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

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

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

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

#!/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。下面的實例改變當前目錄為 /usr/bin。

Dir.chdir("/usr/bin")

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

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

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

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

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

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

Dir["/usr/bin/*"]

創建目錄

Dir.mkdir 可用于創建目錄:

Dir.mkdir("mynewdir")

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

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

Dir.mkdir( "mynewdir", 755 )

刪除目錄

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

Dir.delete("testdir")

創建文件 & 臨時目錄

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

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

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

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)

這段代碼創建了一個臨時文件,并向其中寫入數據,然后刪除文件。Ruby 的標準庫也包含了一個名為 Tempfile 的庫,該庫可用于創建臨時文件:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品电影在线观看| 久久99亚洲热视| 亚洲国产私拍精品国模在线观看| 国产盗摄xxxx视频xxx69| 91久久久久久久| 日韩亚洲一区二区| 国产亚洲精品久久| 视频一区视频二区国产精品| 欧美人与物videos| 成人春色激情网| 亚洲毛茸茸少妇高潮呻吟| 欧美日本高清一区| 成人网页在线免费观看| 日韩精品视频中文在线观看| 亚洲人av在线影院| 日韩中文综合网| 少妇精69xxtheporn| 亚洲精品永久免费精品| 久久久久久久国产精品| 亚洲欧美国产一本综合首页| 国产精品成人播放| 在线不卡国产精品| 欧美丰满少妇xxxxx| 欧美丰满少妇xxxxx做受| 亚洲精品在线91| 亚洲国产欧美日韩精品| 色综合久综合久久综合久鬼88| 欧美性猛交xxxx免费看漫画| 欧美性黄网官网| 欧美黑人一级爽快片淫片高清| 成人伊人精品色xxxx视频| 亚洲欧美三级在线| 国产一区二区在线免费视频| 亚洲精品v欧美精品v日韩精品| 欧美在线激情视频| 亚洲精品国产精品乱码不99按摩| 91极品女神在线| 成人动漫网站在线观看| 亚洲а∨天堂久久精品9966| 国产精品福利在线观看网址| 亚洲综合精品伊人久久| 欧美不卡视频一区发布| 亚洲精品一区中文字幕乱码| 欧美日韩国产在线播放| 久久综合久久88| 欧美日韩中文在线观看| 91美女片黄在线观| 亚洲欧洲一区二区三区久久| 久久精品久久精品亚洲人| 福利微拍一区二区| 亚洲第一精品夜夜躁人人爽| 欧美成人午夜激情视频| 亚洲精品日韩在线| 久久久av一区| 欧美野外wwwxxx| 尤物tv国产一区| 91久久在线视频| 国产成人精品网站| 欧美成人午夜免费视在线看片| 欧美日韩中文字幕综合视频| 青草热久免费精品视频| 亚洲一区二区三区sesese| 亚洲女成人图区| 国产97在线|亚洲| 日韩电影免费在线观看| 日本电影亚洲天堂| 欧美日韩电影在线观看| 久久久久亚洲精品成人网小说| 亚洲欧美国内爽妇网| 国产欧美日韩丝袜精品一区| 午夜美女久久久久爽久久| 精品久久久国产精品999| 亚洲欧洲一区二区三区在线观看| 亲爱的老师9免费观看全集电视剧| 狠狠色香婷婷久久亚洲精品| 91禁国产网站| 成人淫片在线看| 国产精品无av码在线观看| 两个人的视频www国产精品| 国产精品福利在线| 欧美国产中文字幕| 中文字幕精品网| 亚洲free性xxxx护士hd| 色悠久久久久综合先锋影音下载| 夜夜躁日日躁狠狠久久88av| 国产精品第一页在线| 精品电影在线观看| 另类视频在线观看| 91网站免费看| 欧美电影院免费观看| 久久久久国产精品免费网站| 成人黄色大片在线免费观看| 精品国产欧美一区二区五十路| 国产精品一二三在线| 亚洲一品av免费观看| 亚洲国产天堂久久国产91| 97人人做人人爱| 久久99久国产精品黄毛片入口| 在线观看日韩www视频免费| 久久99视频精品| 久久久噜噜噜久久| 欧美电影在线免费观看网站| 91tv亚洲精品香蕉国产一区7ujn| 91在线观看免费高清| 久久91精品国产91久久久| 欧美性猛交99久久久久99按摩| 日韩黄色在线免费观看| 亚洲人成在线电影| 久久久精品视频在线观看| 欧美国产日产韩国视频| 国产成人久久久精品一区| 欧美在线欧美在线| 日韩欧美国产网站| 亚洲电影av在线| 亚洲欧美中文字幕在线一区| 日韩亚洲欧美中文在线| 91久久精品美女高潮| 国产97色在线|日韩| 久久国产精品亚洲| 国产亚洲成av人片在线观看桃| 乱亲女秽乱长久久久| 91国内精品久久| 亚洲欧美精品一区二区| 亚洲xxxxx| 欧美在线激情网| 韩国三级电影久久久久久| 欧美激情欧美激情在线五月| 欧美国产日韩一区二区在线观看| 国外视频精品毛片| 91精品视频专区| 日韩精品久久久久久久玫瑰园| 欧美壮男野外gaytube| 91美女片黄在线观看游戏| 日韩中文在线中文网三级| 8050国产精品久久久久久| 亚洲人在线视频| 国产亚洲欧美另类中文| 亚洲国产精品字幕| 日本一区二三区好的精华液| 亚洲精品日韩欧美| 亚洲国产一区自拍| 91精品啪在线观看麻豆免费| 欧美国产中文字幕| 日韩av免费在线观看| 777精品视频| …久久精品99久久香蕉国产| 日日狠狠久久偷偷四色综合免费| 久久99久国产精品黄毛片入口| 国产精品一区二区久久久久| 欧美激情在线有限公司| 怡红院精品视频| 九九视频直播综合网| 亚洲97在线观看| 国产精品男人爽免费视频1| 亚洲视频欧洲视频| 成人黄色网免费| 亚洲欧美日韩精品久久亚洲区| 亚洲国产日韩欧美在线动漫| 亚洲一区二区三区sesese| 欧美精品一本久久男人的天堂| 久久久精品视频成人| 成人网址在线观看| 色青青草原桃花久久综合| 欧美猛男性生活免费|