我正在读取一个空的HTML文件,如下所示:

file = File.read("file_path/file.html", "wb")

为什么会抛出这个类型错误?
字符串未隐式转换为整数
日志:
Completed 500 Internal Server Error in 8ms (ActiveRecord: 0.0ms)

TypeError (no implicit conversion of String into Integer):
  app/controllers/abc_controller.rb:49:in `read'
  app/controllers/abc_controller.rb:49:in `build'

最佳答案

如果文件是空的,您到底想读什么?
File#read的第二个参数是可选的,应该是要从文件中读取的字符串的长度。"wb"不是整数,因此出现错误消息。
您使用的参数看起来更像open
读取文件
如果你想读这个文件,只要用

content = File.read(filename)

写入文件
如果你想写,你可以用
File.open(filename,'w+') do |file|
  file.puts "content"
end

'w+'是一种文件模式,它:
如果文件存在,则重新编译现有文件。如果文件没有
存在,创建一个用于读写的新文件。
文件的存在性
如果要检查文件是否存在:
File.exists?(filename)

文件是空的吗?
如果要检查现有文件是否为空:
File.size(filename)==0

该文件可能充满空白(大小大于0,但仍为“空”)带扶手:
File.read(filename).blank?

07-28 12:13