更新: 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+"  读写
 opt  
   
   
 关闭文件  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  从末尾开始
   
   
   
   
   
   

Ruby IO类的更多相关文章

  1. C++的那些事:流与IO类

    1.流的概念 "流"就是"流动",是物质从一处向另一处流动的过程,比如我们能感知到的水流.C++的流是指信息从外部输入设备(如键盘和磁盘)向计算机内部(即内存) ...

  2. 设计模式 - 装饰者模式(Decorator Pattern) Java的IO类 用法

    装饰者模式(Decorator Pattern) Java的IO类 用法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26716 ...

  3. JavaSE(一) IO类层次关系和各种IO流的用法总结

    今天把IO流的这一知点进行一下总结,因为在之前使用io流的时候,就只知道几个重点常用的IO类,比如FileInputStream,BufferedInputStream(缓冲流)等等,但是不知道它处于 ...

  4. C++IO类&文件输入输出

    C++IO类&文件输入输出 istream(输入流)类型,提供输入操作. ostream(输出流)类型,提供输出操作. cin,一个istream对象,从标准输入读取数据. cout,一个os ...

  5. C++ Primer 笔记——IO类

    1.C++语言并未定义任何输入输出语句,取而代之,包含了一个全面的标准库来提供IO机制. 由上图能够知道,I/O操作的基类是ios_base,各个类的用途例如以下: <iostream> ...

  6. 8 . IO类-标准IO、文件IO、stringIO

    8.1 IO类 #include <iostream> //标准IO头文件  8.2 文件输入输出流 #include <fstream> //读写文件头文件 std::fst ...

  7. IO库----IO类,文件输入输出,string流

    一.IO类 1.IO库类型和头文件表: 头文件 类型 iostream istream,wistream 从流读取数据 ostream,wostream 向流写入数据 iostream,wiostre ...

  8. IO相关1(io类/流状态)

    IO类: iostream 定义了用于读写流的基本类型,fstream 定义了读写命名文件的类型,sstream 定义了读写内存 string 对象的类型. IO 库类型和头文件: 头文件 类型 io ...

  9. Java IO 类一览表

    下表列出了大多数(非全部)按输/输出,基于字节或字符划分的 Java IO 类.

随机推荐

  1. hihoCoder #1014 : Trie树 [ Trie ]

    传送门 #1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互 ...

  2. putty 配置

    http://blog.sanctum.geek.nz/putty-configuration/ PuTTY configuration Posted on December 22, 2012 PuT ...

  3. 把excel导入到mysql中

    方法很多,不过建议你先看看mysql的开发文档,里面写的很详细的,如果你懒得看,可以看下面的 1.有个软件PHP Excel Parser Pro v4.2可以 2.可将Excel存成csv格式.然后 ...

  4. java面向对象day01

    前言: 1.首先我们要明白:万物皆对象.现实中存在的事物都是对象.而面向对象技术就是对客观事物进行抽象.2.而java语言是纯面向对象的的语言,它具有描述对象及其相互之间关系的语言成分.3.定义类和建 ...

  5. linux显示系统时间

    date   查看系统时间 设置系统时间 # date --set “09/17/10 11:50" (月/日/年时:分:秒) # clock –systohc  将系统时间写入硬件时间

  6. Use JavaScript to Export Your Data as CSV

    原文: http://halistechnology.com/2015/05/28/use-javascript-to-export-your-data-as-csv/ --------------- ...

  7. iOS远程推送原理

    远程推送 就是从远程server推送消息给client的通知.当然须要联网. 远程推送服务APNs (Apple Push NotificationServices) 为什么须要远程推送通知? 传统获 ...

  8. discuz的php7版本号

    php7的安装 wget http://am1.php.net/get/php-7.0.4.tar.gz/from/this/mirror tar zvxf php-7.0.4.tar.gz cd p ...

  9. iOS中3种正则表达式的使用

    1.利用NSPredicate(谓词)匹配 例如匹配有效邮箱: ? 1 2 3 4 NSString *email = @“nijino_saki@163.com”:  NSString *regex ...

  10. base64和图片互转

    pom.xml添加 <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> <dependen ...