ruby way之IO之一

1 打开和关闭一个文件

类方法File.new 打开一个文件,并将它实例化为一个File对象,他的第一个参数是文件名.

可选的第二个参数叫做 mode string(这个也是从c得来的).他的意思是怎样打开一个文件(读,写或者 其他的).默认是'r'(也就是读).

file1 = File.new("one")    # Open for reading 
 
file2 = File.new("two", "w") # Open for writing

另外一种new的形式是三个参数的,其中第二个参数是指定了这个文件的原始的权限(经常表示为一个八 进制的数).第三个参数是一系列Ored标志的组合.标志是个常量比如File:CREAT(如果文件不存在则创建它 )和File:RDONLY(以只读方式打开文件)。不过这种形式很少使用:

file = File.new("three", 0755, File::CREAT|File::WRONLY)

出于对操作系统和运行环境的考虑,如果你打开了一个文件的话,你就必须关闭它。当你打开一个文 件用于写时,你更应该这样做,从而才能免于丢失数据.close方法就是关闭一个文件:

out = File.new("captains.log", "w") 
# Process as needed... 
out.close

这里还有一个open方法,它的最简单的形式是和new同义的:

trans = File.open("transactions","w")

但是open方法还能够带一个block作为参数,当存在block时,打开的文件将会做为一个参数传递给 block.这时这个文件将会在这个block的作用域里,保持打开,直到block结束时,自动关闭:

File.open("somefile","w") do |file| 
 file.puts "Line 1" 
 file.puts "Line 2" 
 file.puts "Third and final line" 
end

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, file
, 参数
, new
, block
, ios block 逆传
, ios block
, creat 文件属性 0755
, 一个
ios中block传值
the ruby way 3rd pdf、the ruby way、the ruby way pdf、learn ruby hard way、the ruby way中文版,以便于您获取更多的相关知识。

时间: 2024-08-26 07:09:30

ruby way之IO之一的相关文章

ruby way之Io之二

1 检测文件是否存在及其大小 FileTest的 exist?方法可以检测一个文件是否存在: flag = FileTest::exist?("LochNessMonster") flag = FileTest::exists?("UFO") # exists? is a synonym for exist? 如果我们想要知道文件是否有内容,可以使用File::Stat的zero? 方法: flag = File.new("somefile").

5分钟学习基于Go,go-microservice-template,Minke的微服务

本文讲的是5分钟学习基于Go,go-microservice-template,Minke的微服务,[编者的话]本篇文章介绍了Go语言下构建微服务的例子,作者利用一个helloword讲解了如何使用他的微服务框架,该框架不仅包含了构建服务,还包括路由.请求验证.日志记录.测试.动态配置变更,最后将提供了将服务整合到Docker容器并持续集成.本文干货满满,虽然需要一些对Go语言的基础,但是这构建微服务的思路是通用的. 介绍 几周前我去参加一个零售环境下的技术会议,直到午饭时间都没人提及'Dock

ruby读取源代码自身的一种方法

    我们知道ruby中如果源代码中一行开头(必须在行的开头)有__END__标示,则表示下面的都是数据行,可以用IO对象DATA来访问这些行.但是如果我们用DATA.rewind一下的话,就可以将文件流指向文件开头鸟,然后就可以访问源代码本身啦: #!/usr/bin/ruby DATA.rewind i=1 DATA.each_line do |line| puts "#{'%03d' % i} #{line}" i+=1 end __END__ 运行结果: wisy@wisy-

HTML5 Web socket和socket.io

HTML5的新特性,用于双向推送消息(例如网页聊天,手机推送消息等) 原理: client利用regular http请求webpage 请求的webpage 执行javascript脚本,open a connection to server. 有新的信息时服务器和客户端可以相互发送信息(Real-time traffic from the server to the client and from the client to the server   客户端 说明: readyState:

Ruby的输入输出和标准库

输入输出 在所有的本系列文章中,在编写Ruby代码时都使用了大量的Ruby标准输出方法.其中,最为常用的是print和puts方法,有关其使用细节不再赘述. 所有这些和其它处理输入和输出的方法都定义于Kernel模块中.这个Kernel模块又被包含在Object类中.因此,Kernel的方法出现在每一个对象中.在输出方面,Kernel定义了print,printf,putc和IO类和两个子类(File和BasicSocket)-它们允许读写文件和套接字.BasicSocket是套接字库的一部分并

ruby way之高级数据存取

经常我们需要以一种更透明的方式来存储和得到数据.Marshal模块提供了简单的对象持久化,PStore 库建立在这项技术之上.dbm 库使用像hash一样并永久的存贮在磁盘上. 1简单的Marshaling 经常我们需要创建一个对象,然后为了以后的使用保存它.ruby对这种对象持久化(或者说是 Marshaling)提供了基本的支持.Marshal 模块能够使程序员序列化和反序列化一个ruby对象. # array of elements [composer, work, minutes] wo

Ruby常用文件操作代码实例

  这篇文章主要介绍了Ruby常用文件操作代码实例,如新建文件.输出文件内容.IO操作.输出文件路径.stringio使用等内容,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 6

Ruby中的Socket编程简单入门

  这篇文章主要介绍了Ruby中的Socket编程简单入门,是Ruby网络编程学习中的基础知识,需要的朋友可以参考下 Ruby提供了两个访问级别的网络服务.在一个较低的水平,可以访问底层的操作系统,它可以实现面向连接和无连接协议的客户端和服务器支持基本的socket. Ruby也具有程序库,提供更高级别的访问特定的应用程序级的网络协议,如FTP,HTTP等. 这篇教程介绍 Ruby Socket编程概念及讲解一个简单的实例. 什么是Sockets? 套接字是一个双向通信信道的端点.socket能

Ruby中操作文件的方法介绍

  这篇文章主要介绍了Ruby中操作文件的方法介绍,是Ruby学习当中的基础知识,需要的朋友可以参考下 Ruby提供了一套完整的I/O相关的内核模块中实现方法.所有I/O方法来自IO类. 类IO提供了所有的基本方法,如 read, write, gets, puts, readline, getc 和 printf. 本章将涵盖所有可供在Ruby中使用的基本I/O功能.如需使用更多的功能,请参考Ruby的IO类. puts 语句: 在前面的章节中,你指定值的变量和然后使用声明 puts 输出.