target.size
在以下代码中的含义以及w
对文件名旁边的含义是什么?当我删除w
或.size
程序时,这意味着什么?
filename = ARGV.first
script = $0
puts "We're going to erase #{filename}."
puts "If you don't wnat that, hit CTRL-C (^C)."
puts "If you do want that, hit RETURN."
print "? "
STDIN.gets
puts "Opening the file..."
target = File.open(filename,'w')
puts "Truncating the file. Goodbye!"
target.truncate(target.size)
puts "Now I'm going to ask you for three lines."
print "line 1: "; line1 = STDIN.gets.chomp()
print "line 2: "; line2 = STDIN.gets.chomp()
print "line 3: "; line3 = STDIN.gets.chomp()
puts "I'm going to write these to the file"
target.write(line1)
target.write("\n")
target.write(line2)
target.write("\n")
target.write(line3)
target.write("\n")
puts "And finally, we Close it"
target.close()
答案 0 :(得分:1)
File.open(filename,'w')
为您提供了一个File
对象,该对象已分配给本地变量target
。target.size
表示实际为File#size
,其中返回文件大小(以字节为单位)。如果您未将模式提供为'w'
,则文件将以模式'r'
打开,这是默认模式。
阅读IO Open Mode:
"w"
:
只写,将现有文件截断为零长度或创建新文件进行写入。
行
target.truncate(target.size)
的解释。
这里你实际上调用了File#truncate
,这个方法的作用是将文件截断为最多整数字节。这意味着您要完全删除文件内容并将文件大小设置为零。