Ruby 入门 互动版

Ruby 简介、环境与安装
Ruby介绍 Ruby 的特性 准备工具,开始干活 Ruby 环境 Ruby 安装 - Linux Ruby 中文编码
Ruby 语法
基本语法 基本概念 保留字 Ruby BEGIN 语句 Ruby END 语句 Ruby 注释
Ruby 数据类型
整型(Integer) 浮点型 字符串类型 反斜线符号 数组 哈希类型 范围类型
Ruby 类和对象
Ruby 类和对象 Ruby 中定义类 Ruby 中使用 new 方法创建对象 Ruby 类中的成员函数
变量
变量 Ruby 全局变量 Ruby 实例变量 Ruby 类变量 Ruby 局部变量和常量 Ruby 伪变量
运算符
算术运算符 比较运算符 赋值运算符 并行赋值 位运算符 逻辑运算符 三元运算符和范围运算符 Ruby defined? 运算符 Ruby 点运算符 "." 和双冒号运算符 "::" Ruby 运算符的优先级
Ruby 判断
if...else 语句 if 修饰符 unless 语句 unless 修饰符 case 语句
循环
while 语句 while 修饰符 until 语句 until 修饰符 for 语句 break 语句 next 语句 redo 语句 retry 语句
方法
语法 从方法返回值 return 语句 可变数量的参数 类方法 alias 语句与undef 语句
块介绍和语法 yield 语句 块和方法 BEGIN 和 END 块
模块(Module)
模块(Module) require 语句 include 语句 Ruby 中的 Mixins
文件的输入与输出
puts 语句 gets 语句 putc 语句 print 语句 打开和关闭文件 读取和写入文件 IO.readlines与IO.foreach 方法 重命名和删除文件 文件模式与所有权 文件查询 Ruby 中的目录 创建文件 & 临时目录
Ruby 异常
Ruby 异常 使用 retry 语句 使用 raise 语句 使用 ensure 语句 使用 else 语句 Catch 和 Throw 类 Exception
在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

读取和写入文件

用于简单 I/O 的方法也可用于所有 file 对象。所以,gets 从标准输入读取一行,aFile.gets 从文件对象 aFile 读取一行。

但是,I/O 对象提供了访问方法的附加设置,为我们提供了便利。

sysread 方法

您可以使用方法 sysread 来读取文件的内容。当使用方法 sysread 时,您可以使用任意一种模式打开文件。例如:

下面是输入文本文件:

This is a simple text file for testing purpose.

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

#!/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 时,您需要以写入模式打开文件。例如:

#!/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 是个可以迭代字符串中每个字符。请看下面的代码实例:

#!/usr/bin/ruby

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

字符一个接着一个被传到变量 ch,然后显示在屏幕上,如下所示:

A.B.C.D.E.F.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...