【发布时间】:2010-09-12 22:57:23
【问题描述】:
我需要一种简单的方法来获取 tar 文件并将其转换为字符串(反之亦然)。有没有办法在 Ruby 中做到这一点?我最好的尝试是这样的:
file = File.open("path-to-file.tar.gz")
contents = ""
file.each {|line|
contents << line
}
我认为将其转换为字符串就足够了,但是当我尝试像这样将其写回时...
newFile = File.open("test.tar.gz", "w")
newFile.write(contents)
这不是同一个文件。执行ls -l 显示文件大小不同,尽管它们非常接近(打开文件会显示大部分内容完好无损)。我是否犯了一个小错误或完全不同(但可行)的方法来完成此操作?
【问题讨论】:
-
这是一个 gzip 压缩的 tar 文件(我希望如此)。没有“线”。请澄清您要实现的目标。
-
您是要查看压缩数据还是未压缩内容?
-
所以压缩数据流中的字符将有大约 256 分之一的机会登陆定义行尾的“\n”,如果它不期望“\r”也可以,请看下面我的回答
-
这个问题应该重新命名为“Convert binary file to string”,否则
IO.read将是首选答案。