Мені потрібен простий спосіб взяти файл tar і перетворити його в рядок (і навпаки). Чи є спосіб це зробити в Рубі? Моя найкраща спроба:
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
показує, що файли мають різні розміри, хоча вони досить близькі (і відкриття файлу виявляє більшу частину вмісту неушкодженим). Чи є невелика помилка, яку я роблю, або зовсім інший (але працездатний) спосіб досягти цього?
IO.read
в іншому випадку було б кращою відповіддю.