国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > Ruby > 正文

Ruby中操作文件的方法介紹

2020-10-29 19:39:39
字體:
供稿:網(wǎng)友

 Ruby提供了一套完整的I/O相關(guān)的內(nèi)核模塊中實現(xiàn)方法。所有I/O方法來自IO類。

類IO提供了所有的基本方法,如 read, write, gets, puts, readline, getc 和 printf.

本章將涵蓋所有可供在Ruby中使用的基本I/O功能。如需使用更多的功能,請參考Ruby的IO類。
puts 語句:

在前面的章節(jié)中,你指定值的變量和然后使用聲明 puts 輸出。

puts 把語句指示程序顯示存儲在變量值。這將添加一個新行,每行末尾寫出(輸出)。
例子:

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

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

This is variable oneThis is variable two

gets 語句:

 gets 語句可以用來從用戶從標(biāo)準(zhǔn)屏幕采取輸入調(diào)用 STDIN.
例如:

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

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

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

Enter a value :This is entered valueThis is entered value

putc 語句:

與 puts 語句不相同,它在屏幕上輸出整個字符串,而putc 語句可以用來一次輸出一個字符。
實例:

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

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

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

H

 print 語句:

print 語句是類似 puts 語句。唯一的區(qū)別是,puts語句后進入到下一行打印的內(nèi)容,print 語句將光標(biāo)定位在同一行上。
實例:

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

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

Hello WorldGood Morning

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

到現(xiàn)在為止,我們已經(jīng)可以讀取和寫入的標(biāo)準(zhǔn)輸入和輸出。我們將看看如何運用到實際的數(shù)據(jù)文件。
File.new 方法:

可以創(chuàng)建一個的File對象使用File.new方法的讀,寫或兩者兼有,這需要根據(jù)模式串。最后,可以使用File.close的方法來關(guān)閉該文件。
語法:

aFile = File.new("filename", "mode")  # ... process the fileaFile.close

File.open 方法:

可以使用File.open方法的方法來創(chuàng)建一個新的文件對象,并分配到一個文件中,文件對象。然而,F(xiàn)ile.open方法和File.new方法之間區(qū)別。 File.open方法不同的是,可以關(guān)聯(lián)一個塊,而不能在File.new方法使用。

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

這里是一個不同的模式打開文件列表:

2015512120340068.jpg (585×415)

 讀取和寫入文件:

同樣的方法,我們一直在使用“簡單”的I/O所有文件對象。因此,gets 從標(biāo)準(zhǔn)輸入讀取一行,F(xiàn)ile.gets文件從文件對象讀取一行。

然而,I/O對象提供額外的訪問方法,使我們的生活更輕松。
sysread 方法:

可以使用該方法sysread讀取一個文件的內(nèi)容。可以打開該文件時,在任何模式中使用的方法sysread。例如:

以下是輸入文本文件:

This is a simple text file for testing purpose.

現(xiàn)在,讓我們嘗試讀取這個文件:

#!/usr/bin/rubyaFile = File.new("input.txt", "r")if aFile  content = aFile.sysread(20)  puts contentelse  puts "Unable to open file!"end

這條語句將輸出文件的前20個字符。現(xiàn)在,將文件指針放置在第21個字符。
syswrite 方法:

可以使用方法 syswrite 中的內(nèi)容寫入到一個文件中。需要打開該文件在寫入模式使用方法 syswrite 時。
例如:

#!/usr/bin/rubyaFile = File.new("input.txt", "r+")if aFile  aFile.syswrite("ABCDEF")else  puts "Unable to open file!"end

這條語句將 “ABCDEF” 寫入到文件中。
each_byte 方法:

這種方法屬于類 File 。總是關(guān)聯(lián)一個塊方法each_byte。考慮下面的代碼示例::

#!/usr/bin/rubyaFile = File.new("input.txt", "r+")if aFile  aFile.syswrite("ABCDEF")  aFile.each_byte {|ch| putc ch; putc ?. }else  puts "Unable to open file!"end

一個接一個字符傳遞變量ch,然后在屏幕上顯示如下:

s. .a. .s.i.m.p.l.e. .t.e.x.t. .f.i.l.e. .f.o.r. .t.e.s.t.i.n.g. .p.u.r.p.o.s.e.....

IO.readlines 方法:

類File 是 IO類的一個子類。類的IO也有一些方法可用于對文件進行操作。

IO類的方法之一是IO.readlines。此方法返回的內(nèi)容文件行。下面的代碼顯示使用方法IO.readlines:

#!/usr/bin/rubyarr = IO.readlines("input.txt")puts arr[0]puts arr[1]

在這段代碼中,變量arr是一個數(shù)組。將文件 input.txt 的每一行,將數(shù)組arr中的元素。因此arr[0]將包含在第一行,而到達[1]將包含該文件的第二行。
IO.foreach 方法:

此方法還返回一行一行的輸出。foreach和 readlines 方法之間的差異是 foreach方法可以帶有塊相關(guān)聯(lián),foreach不會返回一個數(shù)組。例如:

#!/usr/bin/rubyIO.foreach("input.txt"){|block| puts block}

此代碼將傳遞該文件的內(nèi)容,測試可變塊的行,然后,輸出將被顯示在屏幕上。
重命名和刪除文件:

可以重命名和刪除文件用Ruby以編程方式使用 rename 和 delete 方法。

下面的例子,重命名現(xiàn)有文件 test1.txt:

#!/usr/bin/ruby# Rename a file from test1.txt to test2.txtFile.rename( "test1.txt", "test2.txt" )

下面的例子刪除現(xiàn)有文件 test2.txt:

#!/usr/bin/ruby# Delete file test2.txtFile.delete("text2.txt")

文件模式和所有權(quán):

使用chmod掩碼的方法來改變模式或權(quán)限/訪問的文件列表:

下面的例子改變現(xiàn)有的文件test.txt模式掩碼值:

#!/usr/bin/rubyfile = File.new( "test.txt", "w" )file.chmod( 0755 )

以下的表可以幫助選擇不同的面具為chmod方法:

2015512120613148.jpg (576×528)

 文件查詢:

下面的命令測試一個文件是否存在,然后再打開它:

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

下面的命令查詢文件是否是真是個文件:

#!/usr/bin/ruby# This returns either true or falseFile.file?( "text.txt" ) 

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

#!/usr/bin/ruby# a directoryFile::directory?( "/usr/local/bin" ) # => true# a fileFile::directory?( "file.rb" ) # => false

下面的命令查找該文件是否可讀,可寫或可執(zhí)行文件:

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

下面的命令查找該文件是否有大小為零或不:

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

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

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

可以使用下面的命令找出一種類型的文件:

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

 ftype 方法識別的文件類型返回下列之一: file, directory, characterSpecial, blockSpecial, fifo, link, socket 或 unknown.

下面的命令可以用來發(fā)現(xiàn)當(dāng)一個文件被創(chuàng)建,修改或上次訪問:

#!/usr/bin/rubyFile::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也沒有處理這些問題。鑒于文件中類處理文件,使用目錄處理Dir類。
通過目錄導(dǎo)航:

要改變一個Ruby程序的目錄內(nèi),可使用Dir.chdir如下。這個例子改變當(dāng)前目錄 /usr/bin.

Dir.chdir("/usr/bin")

可以使用 Dir.pwd 找出當(dāng)前目錄是什么:

puts Dir.pwd # This will return something like /usr/bin

得到一個使用一個特定的目錄內(nèi)的文件和目錄列表,使用 Dir.entries:

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")

還可以設(shè)置一個新的目錄權(quán)限(不是一個已經(jīng)存在的)用mkdir:

注: 掩碼755設(shè)置權(quán)限所有者,組表示 [所有人] 類似于 rwxr-xr-x , r = read, w = write, and x = execute.

Dir.mkdir( "mynewdir", 755 )

刪除目錄:

可用 Dir.delete 刪除一個目錄。Dir.unlink 和 Dir.rmdir 執(zhí)行完全相同的功能,并提供了方便。

Dir.delete("testdir")

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

臨時文件是程序的執(zhí)行過程中可能會產(chǎn)生短暫的,但不是永久存儲的信息。

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

內(nèi)置功能:

這里是Ruby的支持功能,處理文件和目錄的完整列表:

  •     File Class and Methods.
  •     Dir Class and Methods.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
a视频在线观看| 国产jizz| 天天操天天操天天色天天要| а√资源新版在线天堂| а√天堂8资源在线官网| 女同一区二区免费aⅴ| 麻豆福利在线观看| 中文字幕人成高视频| 国产激情视频网址| 亚洲人在线播放| 国内精品一区视频| 国产精品久久久久久久久鸭 | 中文字幕色视频| 最近中文字幕mv2018在线高清| 中文资源在线网| 国产xxx在线| 在线播放黄色网址| 欧美精品se| 中文字幕4区| 国产系列电影在线播放网址| 亚洲成a人v欧美综合天堂麻豆| 超碰国产在线| 国产福利三区| 国产在线小视频| 亚洲欧美自拍另类| 国产区在线看| 天堂中文字幕在线| www.狠狠| 在线天堂av| 国产www网站| 国产丝袜在线播放| 在线91av| 国产无遮挡在线视频免费观看| 精品极品三级久久久久| 国产在线三区| 狠狠色综合久久婷婷| eeuss影院在线观看| 在线免费黄色毛片| 在线午夜视频| av在线天天| 亚洲国产成人综合| 四虎a级欧美在线观看| 国产精品爱久久久久久久小说| 三级小说一区| 在线免费国产| 日本动漫同人动漫在线观看| 在线亚洲不卡| 天海翼中文字幕| xxxxx中文字幕| 久久精品亚洲7777影院| 中文字幕在线免费观看| 国产亚洲精品午夜高清影院| 国产欧美久久久久久久久| 国产天堂在线| 国产高清免费av在线| av大片在线| 老师我好爽再深一点的视频| 欧美性xxxx交| 国产精品一二三区视频| 国产黄色av免费看| 午夜在线视频播放| 久久精品视频免费看| 最近高清中文在线字幕在线观看| 中文字幕免费在线视频| 非洲黑人最猛性xxxx交| 国产视频你懂的| 影音先锋在线中文字幕| 久久久久久久久久久久久91 | 国产视频1区| 五月婷婷在线观看| 精品网站www| 欧美日韩久久中文字幕| 最新天堂资源在线资源| 国产福利视频在线观看| jizz亚洲| 91在线超碰| 豆国产97在线|亚洲| 亚洲综合在线网| 五月天亚洲激情| 欧美日韩亚洲第一页| 9999在线视频| 国产精品四虎| 国产免费福利| 四虎成人免费| √天堂资源中文www| 午夜av电影| 青娱乐在线视频观看| 国产精品伦一区二区三区视频| 亚洲国产精品区| 中文字幕av中文字幕| 国产超碰97| 国产视频你懂的| 成人av小说网| 欧美日韩在线中文字幕| 在线观看精品一区二区三区| 99视频在线观看地址| 最近中文字幕mv免费高清视频8 | 亚洲第一成年免费网站| 亚洲色婷婷综合开心网| 国产区在线看| 国产欧美日韩精品综合| 91xxx在线观看| 天堂在线免费av| 国产麻豆一区二区三区精品| 丁香婷婷在线观看| 午夜视频免费在线观看| 国产卡1卡2卡三卡在线| 国产精品一区二三区| 国产鲁鲁视频在线观看特色| 国产美女被草| 国产日产一区二区| 国产精品视频一区二区免费不卡 | 狠狠色丁香婷婷| 亚洲精品成人a| 日本视频一二三区中文字幕| 日本不卡影院| 免费电影网站在线视频观看福利| 免费在线播放av| 久久五月精品| 国产久草在线| 2018狠狠干| 伊人网在线视频| 黄色国产在线| 国产福利小视频在线| av在线不卡网站| 午夜不卡视频| av文字幕在线观看| 欧美日韩不卡中文字幕在线| 国产一级片在线播放| eeuss在线观看| 国产一区二区三区四区尤物| 亚洲午夜久久久久中文字幕| 大香伊人久久| a级片国产精品自在拍在线播放| 国产毛片在线| 国产对白国语对白| 国产一二区视频| 任你操在线观看| 国产色婷婷在线| 免费看黄视频网站| 91亚洲欧美| 中文字幕在线观看日本| 亚洲欧美小说国产图片| 国产人成精品| 天堂资源最新在线| 麻豆av电影在线观看| av网站在线播放| 97国产视频| 国产激情在线| 国产一级免费黄色片| 久草在线资源福利| 99reav在线| 国产精品99爱免费视频| 国产一二三区精品视频| 天堂资源在线中文| 国产毛片视频| 国产理论在线观看| 国产麻豆麻豆| 国产精品探花在线| 国产理论电影在线观看| 成人亚洲一区二区三区| 国产乱精品一区二区三区| 九七电影韩国女主播在线观看| 在线黄色国产电影| 中文字幕在线看精品乱码| 日本中文字幕在线观看| 国产在线视频自拍| 天天爱天天做色综合| 最新中文字幕av专区| 国产一区精品| 中文天堂av| 在线久久视频| www.蜜桃av| 中文字幕在线资源| 国产精品美女一区二区视频| 国产福利视频在线| av免费在线观| 久久香蕉一区| 国产精品被窝福利一区 | 本道综合精品| 久久久久久久久久久久网站| 免费看的毛片| 国产私人尤物无码不卡| 91在线高清| 超碰国产在线| 中文字幕一区二区三区免费视频| 最近免费中文字幕在线第一页 | 开心婷婷激情| 国产中文字幕在线| 99reav在线| 狠狠干五月天| 伊人资源视频在线| 久久精品国产亚洲777| 国产porn在线| 国产永久免费| 在线国产一级| 国产精品一区二区三区四区色| 国产精品视频一区二区图片| 一区免费观看| 国产一区二区三区福利|