Ruby文本处理:文件读取与标准输入的高效运用
1. 文件读取要点
在处理文件时, read 和 seek 操作是以字节为单位,而非字符。若使用多字节字符编码(如 UTF - 8),随意使用 seek 可能会使指针停留在多字节字符中间,导致读取数据时出现乱码。因此,只有在处理单字节字符,或者确保查找位置不会处于字符中间时,才使用这些方法。
不过,使用固定宽度文件有很大优势。无论文件多大,都能随机访问数据,无需读取不必要的内容。例如,要获取第 10 条记录,只需从文件开头偏移 567 字节;获取第 703 条记录,从开头偏移 44,226 字节即可。而且,无论文件大小如何,此操作所需时间恒定。
文件读取的方式有多种,包括一次性读取、流式处理,还可利用 Enumerable 方法转换和操作文件内容,进行逐行处理、读取任意字节数,以及定位到文件任意位置,实现类似数据库的部分功能。
2. 标准输入处理
标准输入是文本处理的基础之一,它可以是用户通过键盘输入的文本,也可以是从其他进程重定向过来的文本。在 Ruby 中,这两种输入处理方式相同。
2.1 重定向输入
标准输入可用于从键盘读取文本,如以下代码:
print "What's your name? "
name = $stdin.gets.chomp
puts "Hi, #{name}!"
但标准输入更强大的功能是
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



