質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1186閲覧

テキストファイルに書き込むメソッドを作りたい

kintarock777

総合スコア34

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2017/10/13 00:03

データをテキストファイルに書き込みたいのですがうまくいきません。
書き込んだあとファイルをひらくと、

#StringIO:0x00000002cced48

このようなものが書かれています。

作ったメソッドは、

def www(file) # ファイルを読み込み、行ごとに取り出して配列にする box = [] str = StringIO.new File.open(file){|io| io.each{|line| box << line } } # 配列の順番を逆順にしてstrに代入する box.reverse! box.each_with_index{|wr| str.write("#{wr}") } # strの値を表示する str.rewind p str.read # strの値を"forWrite"ファイルに書き込む str.rewind File.write("forWrite.txt", str) # <<ここの書き方がわかりません end www("forRead.txt")

こんな感じです。
p str.read で出てきた値をそのまま"forWrite.txt"に書き込みたいです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

forReadを逆順にしたものを書き込みたい場合

Ruby

1def sample_method(path) 2 File.write('forWrite.txt', 3 File.read(path).split("\n") 4 .reverse.join("\n") 5 ) 6end 7 8sample_method('forRead.txt')

逆順にした「配列」を書き込みたい場合

Ruby

1def sample_method(path) 2 File.write('forWrite.txt', 3 File.read(path).split("\n") 4 .reverse.to_s 5 ) 6end

投稿2017/10/13 00:30

編集2017/10/13 00:34
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kintarock777

2017/10/13 12:59

回答ありがとうございました。 とても簡潔なコードに直していただいてありがとうございました。 早速、試してみましたところうまくいきました。 ちなみに自分の書いた問題のコードは、 File.write("forWrite.txt", str.read) と、str の後に .read を入れることで同じ結果が得られることが わかりました。 これからもよろしくお願いします。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問