萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> Ruby中操作文件的方法介紹

Ruby中操作文件的方法介紹

   這篇文章主要介紹了Ruby中操作文件的方法介紹,是Ruby學習當中的基礎知識,需要的朋友可以參考下

  Ruby提供了一套完整的I/O相關的內核模塊中實現方法。所有I/O方法來自IO類。

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

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

  puts 語句:

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

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

  例子:

  ?

1 2 3 4 5 6 #!/usr/bin/ruby   val1 = "This is variable one" val2 = "This is variable two" puts val1 puts val2

  這將產生以下結果:

  ?

1 2 This is variable one This is variable two

  gets 語句:

  gets 語句可以用來從用戶從標准屏幕采取輸入調用 STDIN.

  例如:

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

  ?

1 2 3 4 5 #!/usr/bin/ruby   puts "Enter a value :" val = gets puts val

  這將產生以下結果:

  ?

1 2 3 Enter a value : This is entered value This is entered value

  putc 語句:

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

  實例:

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

  ?

1 2 3 4 #!/usr/bin/ruby   str="Hello Ruby!" putc str

  這將產生以下結果:

  ?

1 H

  print 語句:

  print 語句是類似 puts 語句。唯一的區別是,puts語句後進入到下一行打印的內容,print 語句將光標定位在同一行上。

  實例:

  ?

1 2 3 4 #!/usr/bin/ruby   print "Hello World" print "Good Morning"

  這將產生以下結果:

  ?

1 Hello WorldGood Morning

  打開和關閉文件:

  到現在為止,我們已經可以讀取和寫入的標准輸入和輸出。我們將看看如何運用到實際的數據文件。

  File.new 方法:

  可以創建一個的File對象使用File.new方法的讀,寫或兩者兼有,這需要根據模式串。最後,可以使用File.close的方法來關閉該文件。

  語法:

  ?

1 2 3 aFile = File.new("filename", "mode") # ... process the file aFile.close

  File.open 方法:

  可以使用File.open方法的方法來創建一個新的文件對象,並分配到一個文件中,文件對象。然而,File.open方法和File.new方法之間區別。 File.open方法不同的是,可以關聯一個塊,而不能在File.new方法使用。

  ?

1 2 3 File.open("filename", "mode") do |aFile| # ... process the file end

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

2015512120340068.jpg (585×415)

  讀取和寫入文件:

  同樣的方法,我們一直在使用“簡單”的I/O所有文件對象。因此,gets 從標准輸入讀取一行,File.gets文件從文件對象讀取一行。

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

  sysread 方法:

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

  以下是輸入文本文件:

  ?

1 This is a simple text file for testing purpose.

  現在,讓我們嘗試讀取這個文件:

  ?

1 2 3 4 5 6 7 8 9 #!/usr/bin/ruby   aFile = File.new("input.txt", "r") if aFile content = aFile.sysread(20) puts content else puts "Unable to open file!" end

  這條語句將輸出文件的前20個字符。現在,將文件指針放置在第21個字符。

  syswrite 方法:

  可以使用方法 syswrite 中的內容寫入到一個文件中。需要打開該文件在寫入模式使用方法 syswrite 時。

  例如:

  ?

1 2 3 4 5 6 7 8 #!/usr/bin/ruby   aFile = File.new("input.txt", "r+") if aFile aFile.syswrite("ABCDEF") else puts "Unable to open file!" end

  這條語句將 “ABCDEF” 寫入到文件中。

  each_byte 方法:

  這種方法屬於類 File 。總是關聯一個塊方法each_byte。考慮下面的代碼示例::

  ?

1 2 3 4 5 6 7 8 9 #!/usr/bin/ruby   aFile = 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,然後在屏幕上顯示如下:

  ?

1 2 3 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... . .
copyright © 萬盛學電腦網 all rights reserved