在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Ruby/ Ruby文件I/O
Ruby for循環(huán)
Ruby教程
Ruby文件I/O
Ruby迭代器
Ruby哈希
Ruby日期時間
Ruby類和對象
Ruby快速入門(30分鐘)
Ruby redo/retry語句
Ruby模塊
Ruby解析XML(REXML)
Ruby if-else語句
Ruby的功能特點
Ruby break/next語句
Ruby方法
Ruby是什么?
Ruby與Python比較
Ruby Case語句
Ruby目錄
Ruby范圍
Ruby異常
Ruby套接字編程(Socket)
Ruby字符串
Ruby安裝配置
Ruby運算符
Ruby while/do...while循環(huán)語句
Ruby第一個HelloWorld程序
Ruby until循環(huán)語句
Ruby注釋
Ruby塊
Ruby數(shù)據(jù)類型
Ruby面向?qū)ο?/span>
Ruby正則表達式
Ruby數(shù)組
Ruby變量
Ruby多線程編程

Ruby文件I/O

Ruby I/O是與系統(tǒng)交互的一種方式。 數(shù)據(jù)以字節(jié)/字符的形式發(fā)送。 IO類是Ruby中所有輸入和輸出的基礎。它可以是雙工的,因此可使用多個本機操作系統(tǒng)流。

IO類有一個叫作File類的子類,允許在Ruby中讀取和寫入文件。 這兩個類是密切相關的。 IO對象表示對鍵盤和屏幕的可讀/可寫交互。

I/O端口中的常用模式

  • r”:只讀模式,是從文件開始的默認模式。
  • r+”:讀寫模式,從文件開頭開始。
  • w”:只寫模式,創(chuàng)建新文件或截斷現(xiàn)有文件進行寫入。
  • w+”:讀寫模式,創(chuàng)建一個新文件或截斷一個現(xiàn)有文件進行讀寫。
  • a”:只寫模式,如果文件存在,它會將文件附加到一個新的文件將被創(chuàng)建為僅寫入。
  • a+”:讀寫模式,如果文件存在,它將附加文件,一個新文件將被創(chuàng)建用于寫入和讀取。

IO控制臺

IO控制臺提供了與控制臺交互的不同方法。IO類提供以下基本方法:

  • IO::console
  • IO#raw#raw!
  • IO#cooked
  • IO#cooked!
  • IO#getch
  • IO#echo=
  • IO#echo?
  • IO#noecho
  • IO#winsize
  • IO#winsize=
  • IO#iflush
  • IO#ioflush
  • IO#oflush

Ruby打開文件

可以使用不同的讀取,寫入或讀寫方法創(chuàng)建Ruby文件。

在Ruby中打開文件有兩種方法:

  • File.new方法 - 使用這個方法,可以創(chuàng)建一個新的文件用于讀取,寫入或讀寫。
  • File.open方法 - 使用這個方法創(chuàng)建一個新的文件對象。該文件對象被分配給一個文件。

兩種方法之間的區(qū)別是:File.open方法可以與一個塊相關聯(lián),而File.new方法不能。

語法

f = File.new("fileName.rb")

或者 -

File.open("fileName.rb", "mode") do |f|

創(chuàng)建文件的示例

使用File.open方法在Ruby中創(chuàng)建一個文件,以便從文件讀取或?qū)懭霐?shù)據(jù)。

步驟1) 在文件file-create.rb中,編寫代碼以創(chuàng)建新文件,如下所示。

#!/usr/bin/ruby   
# file : file-create.rb
puts 'Start to create file ...'
File.open('create-first-file.txt', 'w') do |f|   
    f.puts "This is Yiibai Website"   
    f.write "You are reading Ruby tutorial.\n"   
    f << "Please visit our website.\n"   
end   
puts 'End create file.'

步驟2)在控制臺中鍵入以下命令以創(chuàng)建的文件。

F:\worksp\ruby>ruby file-create.rb
Start to create file ...
End create file.

F:\worksp\ruby>

創(chuàng)建新文件:create-first-file.txt可在代碼目錄下找到。

Ruby讀取文件

讀取文件有三種不同的方法。要返回一行,使用以下語法。

語法:

f.gets  
 code...

要在當前位置之后返回整個文件,使用以下語法。

語法

f.read  
 code...

要以文件行的形式返回文件,使用以下語法。

語法

f.readlines  
 [code...]

讀取文件的示例

使用File.open方法在Ruby中創(chuàng)建一個文件,以便從文件讀取或?qū)懭霐?shù)據(jù)。

步驟1)在文件 file-read.rb 中,編寫代碼以讀取已存在的文件,如下所示。

#!/usr/bin/ruby   
# file : file-read.rb
while line = gets   
    puts line   
end

步驟2)在控制臺中輸入以下命令以讀取文件。

F:\worksp\ruby>ruby file-read.rb create-first-file.txt
This is Yiibai Website
You are reading Ruby tutorial.
Please visit our website.

F:\worksp\ruby>

關于文件:create-first-file.txt 的內(nèi)容顯示在控制臺中。

sysread 方法

sysread方法也用于讀取文件的內(nèi)容。使用此方法可以以任何模式打開文件。

示例:

在文件:file-sysread.rb中,編寫代碼以讀取已存在的文件,如下所示。

#!/usr/bin/ruby   

aFile = File.new("create-first-file.txt", "r")   
if aFile   
   content = aFile.sysread(30)   
   puts content   
else   
   puts "Unable to open file!"   
end

執(zhí)行上面代碼,輸出結果如下 -

F:\worksp\ruby>ruby file-sysread.rb
This is Yiibai Website
You ar

F:\worksp\ruby>

參數(shù)30表示將從文件打印30個字符。

Ruby寫入文件

借助于syswrite方法,可以將內(nèi)容寫入文件。 需要在此方法的寫入模式下打開文件。

新內(nèi)容將覆蓋已經(jīng)存在的文件中的舊內(nèi)容。

示例

#!/usr/bin/ruby   
# file : file-syswrite.rb

aFile = File.new("about.txt", "r+")   
if aFile   
aFile.syswrite("New content is written in this file.\n Yes, do...while write \n我亂寫一片.")   
end  
puts 'write to file: about.txt success. '

執(zhí)行上面代碼,得到以下輸出結果 -

F:\worksp\ruby>ruby file-syswrite.rb
write to file: about.txt success.

F:\worksp\ruby>

Ruby重命名和刪除文件

使用rename方法重命名Ruby文件,并使用delete方法進行刪除。

要重命名文件,使用以下語法。

File.rename("olderName", "newName.txt")  
``

**實例**

```ruby
#!/usr/bin/ruby   
# file : file-rename.rb

File.rename("about.txt", "about.new.txt")
puts 'rename file => about.txt to about.new.txt'

執(zhí)行上面代碼,得到以下輸出結果 -

F:\worksp\ruby>ruby file-rename.rb
rename file => about.txt to about.new.txt

F:\worksp\ruby>

在上面的輸出中,about.txt文件不再存在,因為它的名稱已被更改為about.new.txt文件。

要刪除文件,使用以下語法。

File.delete("filename.txt")

示例

#!/usr/bin/ruby   

File.delete("new.txt")

在上述輸出中,new.txt文件不再存在,因為它已被刪除。


上一篇:Ruby日期時間下一篇:Ruby字符串