【问题标题】:Unchomping a file, then appending a string取消文件,然后附加一个字符串
【发布时间】:2012-11-04 04:50:35
【问题描述】:

我有一个路径名为file 的文本文件,以及一些我想附加到它的内容string。我想做一些接近的事情

File.open(file, "a"){|io| io.puts(string)}

但是如果文件的原始内容没有以结束符$/结尾,我想在string之前插入一个。最有效的方法是什么?

【问题讨论】:

    标签: ruby file chomp


    【解决方案1】:
    File.open(file, 'r+') do |f|
      unless (last = f.readlines[-1]) && last.end_with?($/)
        f.puts $/
      end
    
      f.puts string
    end
    

    【讨论】:

    • 我虽然答案看起来像这样,但没有考虑使用r+ 模式。
    【解决方案2】:
    File.open(file, "a"){ |io| 
       io.puts
       io.puts(string)
    }
    

    【讨论】:

    • 即使原始内容以结束字符结尾,也会添加结束字符。
    • 然后你必须读取文件中的最后一行,如果它是空的,添加一个结束符
    • 最后一行是否为空无关紧要。
    猜你喜欢
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 2015-12-29
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多