4

目前我正在这样做:

badLinks = Array.new
badLinksFile = File.new(arrayFilePath + 'badLinks.txt', 'w+')
badLinksFile.puts badLinks.to_json

该数组badLinks包含哈希并且是:

brokenLink = Hash.new
brokenLink[:onPage] = @lastPage
brokenLink[:link] = @nextPage
badLinks.push(brokenLink)

当我查看文件时,它是空的。这应该工作吗?

4

1 回答 1

7

有几件事要检查:

badLinksFile = File.new(arrayFilePath + 'badLinks.txt', 'w+')

应该可能'w'代替' w+'。从 IO 文档:

  "w" | 只写,截断现有文件
       | 长度为零或创建一个新文件进行写入。
  -----+-------------------------------------------- ------------
  "w+" | 读写,将现有文件截断为零长度
       | 或创建一个新文件进行读写。

我会更像这样编写代码:

bad_links = []

brokenLink = {
  :onPage => @lastPage,
  :link => @nextPage
}

bad_links << brokenLink

File.write(arrayFilePath + 'badLinks.txt', bad_links.to_json)

这没有经过测试,但它更有意义,并且是惯用的 Ruby。

于 2013-02-20T21:32:47.390 回答