[解決済み】Rubyでバイナリファイルを文字列として読み込む
2022-04-02 10:06:10
質問
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
を見ると、かなり近いものの、ファイルのサイズが異なっています(ファイルを開くと、ほとんどの内容がそのまま表示されます)。私が犯している小さな間違いか、全く別の(しかし実行可能な)達成方法があるのでしょうか?
どのように解決するのですか?
まず、ファイルをバイナリファイルとして開いてください。そうすれば、1つのコマンドで、ファイル全体を読み込むことができます。
file = File.open("path-to-file.tar.gz", "rb")
contents = file.read
これでファイル全体を文字列で取得することができます。
その後、おそらくあなたは
file.close
. それをしない場合
file
はガベージコレクトされるまで閉じないので、開いている間はシステムリソースのわずかな浪費になります。
関連
-
[解決済み] Ruby で Fixnum から String への暗黙の変換ができない (TypeError)
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Aptana Studio 3.6をWindowsにインストールできない
-
[解決済み] ルビーオールウェイズ ラウンドアップ
-
[解決済み] nil:NilClass のための未定義のメソッド `+' (NoMethodError)
-
[解決済み] Ruby の .reject! と .delete_if の比較
-
[解決済み] RubyのFile.openで "No such file or directory - text.txt (Errno::ENOENT)" というエラーが発生する。
-
[解決済み] 配列をアルファベット順に並べるには?
-
[解決済み] Rubyのcontinueに相当します。
-
[解決済み] Ruby Net::HTTPの実行期限が切れた
-
[解決済み] ファイルの存在を確認する方法 [重複]について
-
[解決済み] ネストされたクラスとモジュールにネストされたクラスはいつ使用するのですか?