require "File"
class File
def File.open_and_process(*args)
f=File.open(*args)
yield f
f.close()
end
end
#path='D:\RUBY\myproject\temp'
File.open_and_process("temp.txt") do |file|
while line = file.gets
puts line
end
end
programming ruby(2nd) 中的打开文件的代码,正确。但是之前怎么着都是不对的。
后来试了一个语句:File.open("out.txt", "a") {|f| f.write("Hello")}在cmd下编译运行,通过。打开相应文件夹,已经生成了1KB的out文件,打开也已经写入了hello。可是为什么我的就不行呢?
后来两下对比,才知道:我的以temp文件命名的文件又自作主张地敲上了后缀.txt,这样的话整个文件名不是temp.txt,而是加上文本文件自身的后缀后变成temp.txt.txt,难怪找不到了。
可是,奇怪的是,为什么打印了两次?
注:打印两次是因为上面有一个require "File",而与定义类File中的一起执行文件打开操作。可是方法名又不相同,为什么要这样?还是有点不明白。
评论