• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > Ruby中操作文件的方法介绍

Ruby中操作文件的方法介绍

作者:goldensun 字体:[增加 减小] 来源:互联网

goldensun 通过本文主要向大家介绍了ruby 文件操作,如何运行ruby文件,ruby 文件是什么,ruby 读取文件,ruby读文件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

 Ruby提供了一套完整的I/O相关的内核模块中实现方法。所有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 val1
puts val2

</div>

这将产生以下结果:

This is variable one
This is variable two

</div>

gets 语句:

 gets 语句可以用来从用户从标准屏幕采取输入调用 STDIN.
例如:

下面的代码显示了如何使用 gets 语句。此代码将提示用户输入一个值,将被存储在一个变量val,最后将打印在 STDOUT.

#!/usr/bin/ruby

puts "Enter a value :"
val = gets
puts val

</div>

这将产生以下结果:

Enter a value :
This is entered value
This is entered value

</div>

putc 语句:

与 puts 语句不相同,它在屏幕上输出整个字符串,而putc 语句可以用来一次输出一个字符。
实例:

下面的代码的输出只是一个字符 H:

#!/usr/bin/ruby

str="Hello Ruby!"
putc str

</div>

这将产生以下结果:

H

</div>

 print 语句:

print 语句是类似 puts 语句。唯一的区别是,puts语句后进入到下一行打印的内容,print 语句将光标定位在同一行上。
实例:

#!/usr/bin/ruby

print "Hello World"
print "Good Morning"

</div>

这将产生以下结果:

Hello WorldGood Morning

</div>

打开和关闭文件:

到现在为止,我们已经可以读取和写入的标准输入和输出。我们将看看如何运用到实际的数据文件。
File.new 方法:

可以创建一个的File对象使用File.new方法的读,写或两者兼有,这需要根据模式串。最后,可以使用File.close的方法来关闭该文件。
语法:

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

</div>

File.open 方法:

可以使用File.open方法的方法来创建一个新的文件对象,并分配到一个文件中,文件对象。然而,File.open方法和File.new方法之间区别。 File.open方法不同的是,可以关联一个块,而不能在File.new方法使用。

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

</div>

这里是一个不同的模式打开文件列表:

2015512120340068.jpg (585×415)

 读取和写入文件:

同样的方法,我们一直在使用“简单”的I/O所有文件对象。因此,gets 从标准输入读取一行,File.gets文件从文件对象读取一行。

然而,I/O对象提供额外的访问方法,使我们的生活更轻松。
sysread 方法:

可以使用该方法sysread读取一个文件的内容。可以打开该文件时,在任何模式中使用的方法sysread。例如:

以下是输入文本文件:

This is a simple text file for testing purpose.

</div>

现在,让我们尝试读取这个文件:

#!/usr/bin/ruby

aFile = File.new("input.txt", "r")
if aFile
  content = aFile.sysread(20)
  puts content
else
  puts "Unable to open file!"
end

</div>

这条语句将输出文件的前20个字符。现在,将文件指针放置在第21个字符。
syswrite 方法:

可以使用方法 syswrite 中的内容写入到一个文件中。需要打开该文件在写入模式使用方法 syswrite 时。
例如:

#!/usr/bin/ruby

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

</div>

这条语句将 “ABCDEF” 写入到文件中。
each_byte 方法:

这种方法属于类 File 。总是关联一个块方法each_byte。考虑下面的代码示例::

#!/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

</div>

一个接一个字符传递变量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...
.
.

</div>

IO.readlines 方法:

类File 是 IO类的一个子类。类的IO也有一些方法可用于对文件进行操作。

IO类的方法之一是IO.readlines。此方法返回的内容文件行。下面的代码显示使用方法IO.readlines:

#!/usr/bin/ruby

arr = IO.readlines("input.txt")
puts arr[0]
puts arr[1]

</div>

在这段代码中,变量arr是一个数组。将文件 input.txt 的每一行,将数组arr中的元素。因此arr[0]将包含在第一行,而到达[1]将包含该文件的第二行。
IO.foreach 方法:

此方法还返回一行一行的输出。foreach和 readlines 方法之间的差异是 foreach方法可以带有块相关联,foreach不会返回一个数组。例如:

#!/usr/bin/ruby

IO.foreach("input.txt"){|block| puts block}

</div>

此代码将传递该文件的内容,测试可变块的行,然后,输出将被显示在屏幕上。
重命名和删除文件:

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

下面的例子,重命名现有文件 test1.txt:

#!/usr/bin/ruby

# Rename a file from test1.txt to test2.txt
File.rename( "test1.txt", "test2.txt" )

</div>

下面的例子删除现有文件 test2.txt:

#!/usr/bin/ruby

# Delete file test2.txt
File.delete("text2.txt")

</div>

文件模式和所有权:

使用chmod掩码的方法来改变模式或权限/访问的文件列表:

下面的例子改变现有的文件test.txt模式掩码值:

#!/usr/bin/ruby

file = File.new( "test.txt", "w" )
file.chmod( 0755 )

</div>

以下的表可以帮助选择不同的面具为chmod方法:

2015512120613148.jpg (576×528)

 文件查询:

下面的命令测试一个文件是否存在,然后再打开它:

#!/usr/bin/ruby

File.open("file.rb") if File::exists?( "file.rb" )

</div>

下面的命令查询文件是否是真是个文件:

#!/usr/bin/ruby

# This returns either true or false
File.file?( "text.txt" ) 

</div>

给定文件名是否为一个目录,下面的命令查找:

#!/usr/bin/ruby

# a directory
File::directory?( "/usr/local/bin" ) # => true

# a file
File::directory?( "file.rb" ) # => false

</div>

下面的命令查找该文件是否可读,可写或可执行文件:

#!/usr/bin/ruby

File.readable?( "test.txt" )  # => true
File.writable?( "test.txt" )  # => true
File.executable?( "test.txt" ) #
  


 

您可能想查找下面的文章:

  • ruby 去掉文件里重复的行
  • 在操作系统上安装Ruby解释器的教程
  • Ruby常用文件操作方法
  • Ruby中操作文件的方法介绍
  • Ruby中处理时间的一些基本操作
  • 在Ruby中处理文件的输入和输出的教程
  • Ruby中一些常用的文件操作方法小结
  • Ruby实现批量对文件增加前缀代码分享
  • ruby实现的文件自删除代码分享

相关文章

  • 用SparkR探索电商数据
  • ruby will_paginate的用法
  • windows下安装ruby与rails时遇到的问题总结
  • 在Ruby中查找和执行方法
  • Ruby中的循环语句的用法教程
  • Ruby中遍历目录的简洁方法
  • Ruby中的变量学习总结
  • 用Ruby进行CGI编程的入门指引
  • Ruby连接使用windows下sql server数据库代码实例
  • Ruby中gem包管理器的用法及用bundler来管理多版本的gem

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • CentOS 6.3下编译安装Ruby 2.0笔记
    • ruby 简单例子
    • Ruby初学笔记之Hello World
    • win7安装ruby on rails开发环境
    • ruby 单态方法 分析
    • Ruby编程中的赋值相关操作
    • Ruby定义私有方法(private)的两种办法
    • CentOS7下搭建ruby on rails开发环境
    • 分析Cache 在 Ruby China 里面的应用情况
    • Monkey Patch猴子补丁编程方式及其在Ruby中的运用

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有