Ruby 文件处理

摘要:
#读取、#wwrite、#aappend、#r+读/写模式:从文件头读取或写入。#w+读/写模式:如果文件已经存在,则清空该文件,如果不存在则创建一个新文件,#a+如果文件存在则在文件末尾附加文件,如果文件不存在则新建一个文件#Dir.foreach{| Dir | putsdir}将“附加文件:#{FileName}”文件。打开do|io|。每个人。puts“附加文件:#{FileName}行#{i}数据”#写入文件endendFile。打开{|io|io.each{|i|#puts“行号:#{io.lineno}:#{i}”#读取文件}#文件。rename#重命名#文件。delete#删除文件file_大小=文件。size#获取文件putsfile_ Sizefile=文件的字节大小。openputs“创建时间#{file.stat.ctime}”#Creation time puts“上次修改时间#{file.stat.mtime}”puts“最后访问时间#{file.stat.attime}”puts“当前工作目录:#{Dir.pwd}”if!
#r read,#w write,#a append,#r+ 读写方式 从文件的头位置开始读取或写入,#w+ 读写方式,如果文件已存在清空该文件,不存在就创建一个新的文件, #a+ 如果文件存在就在最后面附加,如果不存在就创建一个新文件。
FileName="newfile.txt"file=File.open(FileName,'a')

file.puts 'test'p file.path
file.close
p File.file?(FileName)
#Dir.foreach("C:/") { |dir| puts dir  }
puts "追加的文件:#{FileName}"File.open(FileName,'a+') do |io|(1..10).each do |i|io.puts "追加的文件:#{FileName}第 #{i}行数据"#写入文件
end
end
File.open(FileName,'r+') { |io|io.each { |i|
    #puts "行号:#{io.lineno}:#{i}"#读取文件
}    
}
#File.rename(old_name, new_name)#重命名文件#File.delete(file_name) #删除文件
file_size= File.size(FileName)#获取文件的字节大小
puts file_size
file=File.open(FileName)
puts "创建时间#{file.stat.ctime}"#创建时间
puts "最后修改时间#{file.stat.mtime}"puts "最后访问时间#{file.stat.atime}"
puts "当前工作目录:#{Dir.pwd}"
if !File.directory?(Dir.pwd+'/testdir')
  Dir.mkdir 'testdir'#创建目录
end

Dir.foreach(Dir.pwd) do |dir|
  #puts dir#列出当前目录下所有文件和子目录
end

Dir.chdir('C:/')  #更改当前工作目录
puts "当前工作目录:#{Dir.pwd}"

#加载当前目录中所有的子目录和文件,会占用大量的内存,另一种方法是使用find模块#Dir.glob('**/**').each  do   |filename| #puts filename  #end

#require "find" #包含find模块#Find.find(Dir.pwd) { |path| puts path  }
require "rexml/document"docxml=REXML::Document.new
element=docxml.add_element('book',{'name'=>'Ruby book'})
chapter1=element.add_element('c1',{ 'title'=>'c11'})
chapter2=element.add_element('c2',{ 'title'=>'c22'})

chapter1.add_text 'chapter1'chapter2.add_text 'chapter2'docxml.write

#YMAL库#FPDF库 生成PDF#Rubyzip库 读写zip文件#Rmagick库 图像文件处理

免责声明:文章转载自《Ruby 文件处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇基于ArcGIS API for Javascript的地图编辑工具64位系统下找不到office 32位组件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

matlab读取cvs文件的几种方法

matlab读取CVS文件的几种方法:1,实用csvread()函数csvread()函数有三种使用方法:1、M=csvread2、M=csvread3、M=csvread第一种方法中,直接输入文件名,将数据读到矩阵M中。textscan函数读取的结果会存在cell数组中。...

ubuntu用命令连接无线网络

拔下USB网卡并重新插入。无法使用上述步骤成功连接AP。可以使用以下步骤成功连接AP。参考:1.打开无线网卡iwconfigwlan0txpoweron2.列出无线网络iwlistwlan0scan3.如果要连接到网络MyHome,请输入命令iwconfigwlan 0sessiond“MyHome”。如果网络已加密,密码为0123456789,请输入命令i...

MyBatisPlus使用

简介MyBatis Plus是MyBatis的增强工具。基于MyBatis,只进行了增强而不进行更改。它旨在简化开发并提高效率。...

Element UI 弹窗(Dialog)改成自适应高度,仅body内容部分滚动

定义样式如下:.abow_dialog{display:flex;justify-content:center;align-items:Center;overflow:hidden;.el-dialog{margin:0auto!important;height:90%;overflow:hidden;.el-dialog__body{position:ab...

C# AES的128位、192位、256位加密

这里将不解释C#AES的128位、192位和256位加密原理。这里我们主要讨论AES的CBC加密模式中128位、192位和256位加密之间的差异,并参考对称加密和块加密的四种模式。16位密钥对应128位加密,24位密钥对应192位加密,32位密钥对应256位加密,矢量必须为16位。“);ifthrownewException(”指定的密钥长度不能小于16位。...

ubuntu的ufw如何开放特定端口?

ubuntu的ufw是如何打开特定端口的?1.安装sudoapt getinstallufw2.启用sudoufwenable以默认情况下禁用外部访问sudoufwdefaultdeny 3.查看状态sudoufwstatus4.添加端口sudoufwallow80805。删除端口sudoufwdeleteallow808080806。允许特定源的IP地址从...