Ich brauche eine einfache Möglichkeit, eine TAR-Datei zu nehmen und in eine Zeichenfolge umzuwandeln (und umgekehrt). Gibt es eine Möglichkeit, dies in Ruby zu tun? Mein bester Versuch war:Binärdatei als Zeichenfolge in Ruby lesen
file = File.open("path-to-file.tar.gz")
contents = ""
file.each {|line|
contents << line
}
Ich dachte, dass genug wäre, es in eine Zeichenfolge zu konvertieren, aber dann, wenn ich versuche es so aus, schreiben zurück ...
newFile = File.open("test.tar.gz", "w")
newFile.write(contents)
Es isn Es ist dieselbe Datei. Doing ls -l
zeigt die Dateien sind von unterschiedlicher Größe, obwohl sie ziemlich nah sind (und das Öffnen der Datei zeigt den größten Teil des Inhalts intakt). Gibt es einen kleinen Fehler, den ich mache oder einen ganz anderen (aber praktikablen) Weg, dies zu erreichen?
Das ist eine gzip-tar-Datei (hoffe ich). Es gibt keine "Linien". Bitte klären Sie, was Sie erreichen möchten. –
versuchen Sie, die komprimierten Daten oder unkomprimierten Inhalt zu sehen? –
so Zeichen in einem komprimierten Datenstrom wird etwa 1 in 256 Chance auf "\ n" landen Ende einer Zeile zu landen, und das ist in Ordnung, wenn es nicht erwartet "\ r" auch, siehe meine Antwort unter – Purfideas