什么是.size意味着什么

时间:2014-01-28 21:37:44

标签: ruby windows

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()

1 个答案:

答案 0 :(得分:1)

File.open(filename,'w')为您提供了一个File对象,该对象已分配给本地变量targettarget.size表示实际为File#size,其中返回文件大小(以字节为单位)。如果您未将模式提供为'w',则文件将以模式'r'打开,这是默认模式。


阅读IO Open Mode

"w"

  

只写,将现​​有文件截断为零长度或创建新文件进行写入。


  

target.truncate(target.size)的解释。

这里你实际上调用了File#truncate,这个方法的作用是将文件截断为最多整数字节。这意味着您要完全删除文件内容并将文件大小设置为