在Ruby中以字符串形式读取二进制文件

我需要一种简单的方法来获取tar文件并将其转换为字符串(反之亦然)。有没有办法用Ruby实现这一点?我最好的尝试是:

file=file.open(“file.tar.gz的路径”)
contents=“”
file.each{|行|
目录<<行
}

我以为这就足够把它转换成字符串了,但是当我试着像这样把它写出来的时候

newFile=File.open(“test.tar.gz”、“w”)
newFile.write(目录)

它不是同一个文件。执行ls-l显示文件大小不同,尽管它们非常接近(打开文件显示大部分内容完好无损)。我是否犯了一个小错误,或者有一个完全不同的(但可行的)方法来实现这一点

首先,您应该以二进制文件的形式打开该文件。然后您可以在一个命令中读取整个文件

file=file.open(“file.tar.gz的路径”,“rb”)
contents=file.read

这将使您在一个字符串中获得整个文件

之后,您可能希望file.close。如果不这样做,文件在被垃圾收集之前不会被关闭,因此在打开时会稍微浪费系统资源

发表评论