更新: 2017/06/23 表格大小全部改为100%
文件输入输出的File....系列函数的文件名参数是字符串!
更新: 2017/06/24 补充io.write()
更新: 2019/04/18 补充File#read说明, 对readline, gets, readlines进行总结, 修改File#open的格式便于查看
内置变量 |
标准输入 |
STDIN
$stdin |
标准输出 |
STDOUT
$stdout |
标准异常输出 |
STDERR
$stderr |
|
|
|
|
|
|
|
二进制模式 |
内容直接复制,无改动
不进行换行符号的跨系统转换 |
|
|
方法 |
读取 |
|
是否和命令行连接 |
STDIN.tty?
$stdin.tty?
注: teletype
电报 |
读取1行 |
io.gets(rs=$/) 遇到EOF返回nil io.readline(rs=$/) 遇到EOF抛出错误
内置全局变量$/就是\n |
读取所有行 |
io.readlines(rs=$/) |
遍历所有行 |
io.each(rs=$/) io.each_line(rs=$/) |
检查是否读到了最后 |
io.eof?()
eof: end of file |
读取的行数 |
io.lineno
变更 io.lineno = ... |
读取每个字符 |
io.each_char {|...|
...} |
读取每一位 |
io.each_byte {|...| ...}
返回每一位的ASCII整数值 |
只读一个字符 |
io.getc() |
替换当前字符 |
io.ungetc("...") |
只读一位 |
io.getbyte() |
替换当前位 |
io.ungetbyte(byte)
byte:整数时候自动%6
字符串则只取第一个 |
读取指定位长度 |
io.read(size=all)
默认全部 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
输出 |
|
输出带换行的字符串 |
io.puts(s1, s2,...)
默认STDOUT.puts(.)
每一个参数都附加换行
不是字符的自动召唤to_s() |
输出字符 |
io.putc(ch)
不换行 |
输出字符串 |
io.print(s1, s2,..)
io.write()
不换行,相当于就那么输出 |
指定格式输出 |
io.printf(str, a1, a2,...)
注sprintf(...)返回成型的字符串 |
|
|
插字符串 |
io << str1 <<
str2 << ... |
|
|
搜索 |
|
当前指针 |
获取 io.pos
变更 io.pos = (num) |
变更位置 |
io.seek(offset, whence)
IO::SEEK_SET |
绝对位置 |
IO::SEEK_CUR |
相对位置 |
IO::SEEK_END |
从末尾开始 |
|
回到开头 |
io.rewind() |
剪裁 |
io.truncate(size)
size:整数决定长度
指针则删除当前指针后的数据 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
切换模式 |
io.binmode() |
缓存区 |
只有任务结束才会更新 |
立刻更新 |
io.flush() |
设定同步 |
io.sync()
io.sync() = true |
|
|
|
|
|
|
|
|
|
子类 |
|
File |
|
方法 |
打开文件 |
File.open (file,mode,perm, opt)
open(file,mode,perm, opt) # File可省
● 代码块式,结束自动关闭
File.open(...) do |file|
...
end
注:mode处可以指定内外编码
"r:utf-8:utf-8"
"r:ex:in"
内部编码可省略
先指定的是外部编码
mode |
rt这样改行一律\n
rb,wb,ab二进制
默认r |
"r" |
读 |
"r+" |
读写
写是覆盖性的写 |
"w" |
写(覆盖) |
"w+" |
读写 |
"a" |
写(新添加) |
"a+" |
读写 |
|
关闭文件 |
file.close()
注:不能关空的,会报错 |
确认是否关闭 |
file.closed?() |
读取文件指定字数 |
File.read(file, length=0, offset=0)
● 返回读取的字符串
● 参数
file |
文件名 |
length |
读取的位数(byte) |
offset |
跳过开头多少位 |
● File.binread(file, length=0,offset=0) 二进制模式
|
写入 |
File.write(file, data, offset = 0)
data: 字符串
File.binwrite(..)
二进制模式 |
插字符串 |
io << str1 << str2 <<
... |
|
|
|
|
|
|
搜索 |
|
当前指针 |
获取 io.pos
变更 io.pos = (num) |
变更位置 |
io.seek(offset, whence)
IO::SEEK_SET |
绝对位置 |
IO::SEEK_CUR |
相对位置 |
IO::SEEK_END |
从末尾开始 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|