Мне нужен простой способ взять tar-файл и преобразовать его в строку (и наоборот). Есть ли способ сделать это в Ruby? Моя лучшая попытка была такой:Чтение двоичного файла как строки в 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)
Это ISN 't тот же файл. Выполнение ls -l
показывает, что файлы имеют разные размеры, хотя они довольно близки (и открытие файла показывает большую часть содержимого неповрежденным). Есть ли небольшая ошибка, которую я делаю, или совершенно другой (но работоспособный) способ сделать это?
Это сжатыми деготь файл (я надеюсь). Нет «линий». Pls разъясняет, чего вы пытаетесь достичь. – 2008-09-25 01:26:16
Вы пытаетесь посмотреть сжатые данные или несжатый контент? – 2008-09-25 01:48:01
поэтому символы в сжатом потоке данных будут иметь примерно 1 из 256 шансов приземления на «\ n», определяющем конец строки, и это нормально, если он не ожидает «\ r» тоже, см. Мой ответ ниже – Purfideas 2008-09-25 01:53:21