Я проверил код на моей машине, и у меня правильно есть файл "faren_temp.out". Нет ничего плохого?
Temperature.dat
23
faren_temp.out
73
У вас просто проблема с результатом. "celsius" должен быть переменной с плавающей точкой, чтобы делать деление с плавающей точкой (не деление с помощью int).
puts "Reading Celsius temperature value from data file..."
num = File.read("temperature.dat")
celsius = num.to_f # modification here
farenheit = (celsius * 9/5) + 32
puts "Saving result to output file 'faren_temp.out'"
fh = File.new("faren_temp.out", "w")
fh.puts farenheit
fh.close
faren_temp.out
73.4