Ruby语言基础学习十:Ruby文件输入输出

来源:互联网 发布:手机游戏拍摄软件 编辑:程序博客网 时间:2024/06/14 11:16

# Ruby 文件的输入与输出 ,本文参考http://www.runoob.com/ruby/ruby-input-output.html# gets 语句可用于获取来自名为 STDIN 的标准屏幕的用户输入。puts "Enter a value :"#下面有一个严重的我问题,留在这里,就是gets创建后没反应,苦恼中···# name=gets# puts name# 打开和关闭文件# 您可以使用 File.new 方法创建一个 File 对象用于读取、写入或者读写,读写权限取决于 mode 参数。# 最后,您可以使用 File.close 方法来关闭该文件。# 您可以使用 File.open 方法创建一个新的 file 对象,并把该 file 对象赋值# 给文件。但是,File.open 和 File.new 方法之间有一点不同。不同点# 是 File.open 方法可与块关联,而 File.new 方法不能。# 读取和写入文件# sysread 方法# 您可以使用方法 sysread 来读取文件的内容。当使用方法 sysread 时,您可以使用任意一种模式打开文件。#建立一个input.txt文件并写入:This is a simple text file for testing purpose.aFile=File.new("input.txt","r") #只读模式打开if aFile #如果afile 不是nilcontent=aFile.sysread(20) #从文件中读取20个字puts contentelseputs "Unable to open file"endaFile.close# syswrite 方法aFile=File.new("input.txt","r+") #读写模式,可以从头写入,并且只是掩盖前面已有的若干字母if aFileaFile.syswrite("ABCDEF") aFile.rewindaFile.each_byte{|ch| putc ch;putc ?.} #这里还有一个正则表达式呢!elseputs "Unable to open file !"endaFile.close# IO.readlines 方法arr=IO.readlines("input.txt")puts "this is"puts arr[0]puts arr[1]# IO.foreach 方法,逐行显示IO.foreach("input.txt") {|block| puts block}# 重命名和删除文件# 重命名文件 test1.txt 为 test2.txt#在文件夹中创建test1.txt,#File.rename("test1.txt","test2.txt")#删除一个已存在文件 test2.txt#File.delete("test2.txt")# 文件模式与所有权# 使用带有掩码的 chmod 方法来改变文件的模式或权限/访问列表# file=File.new("input.txt","w")# file.chmod(0700) #rwx 掩码,针对所有者# file.close# 下面的命令在打开文件前检查文件是否已存在File.open("input.txt") if File::exists?("input.txt")# 下面的命令查询文件是否确实是一个文件# 返回 true 或false# 返回 true 或falseputs File.file?( "text.txt" ) # 下面的命令检查给定的文件名是否是一个目录# 一个目录puts File::directory?("D:\\Media")#一个文件puts File::directory?("input.txt")# 下面的命令检查文件是否可读、可写、可执行:puts File.readable?( "input.txt" )   # => trueputs File.writable?( "input.txt" )   # => trueputs File.executable?( "input.txt" ) # => false# 下面的命令检查文件是否大小为零puts "this"puts File.zero?( "input.txt" ) # 下面的命令返回文件的大小puts File.size?( "input.txt" )# 下面的命令用于检查文件的类型puts File::ftype( "input.txt" )   # => file# 下面的命令用于检查文件被创建、修改或最后访问的时间:puts File::ctime( "input.txt" ) puts File::mtime( "input.txt" ) puts File::atime( "input.txt" ) # Ruby 中的目录# 为了在 Ruby 程序中改变目录,请使用 Dir.chdir。Dir.chdir("D:\\Media")#您可以通过 Dir.pwd 查看当前目录puts Dir.pwd# 可以使用 Dir.entries 获取指定目录内的文件和目录列表puts Dir.entries("D://KuGou").join(' ')# Dir.entries 返回一个数组,包含指定目录内的所有项。Dir.foreach 提供了相同的功能Dir.foreach("D://KuGou") do |entry|puts entryend# 获取目录列表的一个更简洁的方式是通过使用 Dir 的类数组的方法puts "this"puts Dir["D://KuGou//*"]# 创建目录,这个是在当前目录下创建的# Dir.mkdir("mynewdir")# 您也可以通过 mkdir 在新目录(不是已存在的目录)上设置权限:# 注意:掩码 755 设置所有者(owner)、所属组(group)、每个人(world [anyone])的权限为 rwxr-xr-x,其中 r = read 读取,w = write 写入,x = execute 执行。if Dir.exists?("mynewdir2") then Dir.mkdir("mynewdir2",755) end# 删除目录# Dir.delete 可用于删除目录。Dir.unlink 和 Dir.rmdir 执行同样的功能,为我们提供了便利。# if false==Dir.exists?("mynewdir") then Dir.delete("mynewdir") end# 创建文件 & 临时目录# 可以把 Dir.tmpdir 和 File.join 一起使用,来创建一个独立于平台的临时文件require 'tmpdir'   tempfilename = File.join(Dir.tmpdir, "tingtong")   tempfile = File.new(tempfilename, "w")   tempfile.puts "This is a temporary file"   tempfile.close   File.delete(tempfilename)# 这段代码创建了一个临时文件,并向其中写入数据,然后删除文件。Ruby 的标准库也包含了一个名为 Tempfile 的库,该库可用于创建临时文件:require 'tempfile'   f = Tempfile.new('tingtong')   f.puts "Hello"   puts f.path   f.close

0 0