 
 This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Truncating a File | ||
|---|---|---|
| Code | Expected | Actual | 
| filename = 'truncate.txt'
open(filename, 'w') { |f| f << "All of this will be truncated." }
File.size(filename) | 30 | 30 | 
| f = open(filename, 'w') {}
File.size(filename) | 0 | 0 | 
| open(filename, 'w') { |f| f << "Here are some new contents." }
File.size(filename) | 27 | 27 | 
| f = open(filename, File::TRUNC) {}
File.size(filename) | 0 | 0 | 
| open(filename, File::TRUNC) do |f| f << "At last, an empty file to write to!" end | IOError: not opened for writing ... | IOError: not opened for writing from (irb):11:in `write' from (irb):11 from (irb):10 | 
| f = open(filename, 'w') do |f| f << 'These words will remain intact after the file is truncated.' end File.size(filename) | 59 | 59 | 
| File.truncate(filename, 30) File.size(filename) | 30 | 30 | 
| open(filename) { |f| f.read } | "These words will remain intact" | "These words will remain intact" | 
| f = open(filename, "w") { |f| f << "Brevity is the soul of wit." }
File.size(filename) | 27 | 27 | 
| File.truncate(filename, 30) File.size(filename) | 30 | 30 | 
| open(filename) { |f| f.read } | "Brevity is the soul of wit.\000\000\000" | "Brevity is the soul of wit.\000\000\000" |