我需要一种简单的方法来获取 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
显示文件大小不同,尽管它们非常接近(打开文件会显示大部分内容完好无损)。我是否犯了一个小错误或完全不同(但可行)的方法来完成此任务?
最佳答案
首先,您应该将文件作为二进制文件打开。然后,您可以通过一条命令读取整个文件。
file = File.open("path-to-file.tar.gz", "rb")
contents = file.read
这将使您获得整个文件的字符串。
在那之后,您可能想要file.close
。如果不这样做,file
将在垃圾回收之前不会关闭,因此在打开时会稍微浪费系统资源。
关于ruby - 在 Ruby 中将二进制文件读取为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/130948/