ruby学习之文件和数据库(一)

输入输出:

标准输入:

a = gets , gets是从标准输入获取一行数据 , lines = readlines 一次获取多行内容直到EOF(ctrl+D)

puts a ,puts是打印输出到标准输出

 

文件输入输出:

File类打开文件,可以是纯文本和二进制文件

File.open("text.txt").each{|line| puts line},File.open接受代码块,当代码块运行结束,文件自动关闭

也可以File.new("text.txt","r").each{|line| puts line},File.new返回文件对象,关闭文件就必须用File.close

class MyFile
  attr_reader :handle
  def initialize(filename)
    @handle = File.new(filename,"r")
  end
  
  def finished
    @handle.close
  end
  
end

f = MyFile.new("D://rb//text.txt")
puts f.handle.each{|txt| puts txt}
f.finished

其中each的默认界定符是"\n",自定义用each(",")自定义为","界定

用each_byte方法,逐字节地读取I/O流。用chr方法转化为字符~

 

另外用gets方法读取

  def self.readf
    File.open("D://rb//text.txt") do |f|
      10.times{ puts f.gets}
    end
  end

同时也可以接受界定符 f.gets(',')  而f.getc是each_byte的非迭代版本

 

整行读取

  def self.readl
    puts File.open("D://rb//text.txt").readlines.join("--")
  end


read方法读取任意字节数

  def self.readb
    File.open("D://rb//text.txt") do |f|
      puts f.read(6)
    end
  end


简便方法推荐~

File.read(filename)和File.readlines(filename)

 

输入:

File.open("text.txt","w") do |f|
f.puts("this is a test")
end

File.new文件模式

文件模式操作
r只读,文件指针开头
r+可读可写,文件指针开头,复写
w写,复写
w+可读可写,创建新文件
a(附加模式)
a+可读可写(附加模式)文件指针末尾

gets-->puts

getc-->putc

read-->write

改名:File.rename("file1","file2")

删除:File.delete("file1","file2".....)

比较相同:File.identical?("file1","file2")

组织文件路劲:File.join('full','path','here','filename.txt')

上次修改文件的时间:File.mtime("file1")

文件是否存在:File.exist("file1")

文件大小:File.size("file1")

文件末尾:f.eof

文件智镇江定位:seek方法
seek三种模式

  
IO::SEEK_CUR从当前位置向前移动N个字节

IO::SEEK_END

移动到文件末尾一定位置的地方。这表示从末尾开始搜索,可能使用负数
IO::SEEK_SET移动到文件的绝对位置。与pos=完全相同

  def self.filepoint
    f = File.new("D://rb//text.txt","r+")
    f.seek(-5,IO::SEEK_END)
    f.putc "X"
    f.close
  end


 

目录处理:(File::SEPARATOR是斜杠)

显示当前目录:Dir.pwd

移动当前目录:Dir.chdir("/usr/bin")

获得目录文件列表:Dir.entries("/usr/bin").join('  '),返回一个数组。Dir.foreach同理。Dir["/usr/bin/*"]

创建目录:Dir.mkdir("dir")

删除目录:Dir.delete("dir")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值