微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Ruby中将二进制文件作为字符串读取

如何解决在Ruby中将二进制文件作为字符串读取

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

file = File.open("path-to-file.tar.gz", "rb")
contents = file.read

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

之后,您可能想要file.close. 如果你不这样做,file在它被垃圾收集之前不会被关闭,所以在它打开的时候会稍微浪费系统资源。

解决方法

我需要一种简单的方法来获取 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显示文件大小不同,尽管它们非常接近(打开文件会显示大部分内容完好无损)。我是否犯了一个小错误或完全不同(但可行)的方法来实现这一点?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。