テキストファイルから読み込んだ改行コード

2,198 views
Skip to first unread message

tarofess

unread,
Sep 10, 2014, 7:48:01 PM9/10/14
to android-g...@googlegroups.com
おはようございます。
現在テキストファイルから読み込んだ文字列を改行させようとしているのですが、
「おはようございます。\n今日は雨です」のような出力になってしまいます。
普通にString t="こんにちは。`\n今日は雨です"として出力すると改行されるので、テキストから読み込んだ文字列を以下のように
String t=txt[i].toString();
としてStringの変数に入れて出力してみたりもしてみたのですが、うまくいきません。
テキストファイルから読み込んだ改行コードを認識させるにはどうすればよろしいでしょうか?
お返事頂けると幸いです。
よろしくお願いします。

Shigeo Mutoh

unread,
Sep 10, 2014, 11:05:20 PM9/10/14
to android-g...@googlegroups.com
武藤です。

「出力」とお書きになられているのは、いったい何でしょう?
Logcat出力なのか、Text viewで表示することなのか、何なのか。

というのは、ファイルの読み込みは問題なくて、ただ出力先が
改行コードを「改行できない」だけなのではないかという疑惑が
あるからです。

また、このような場合にまずやってみるべきことは、入力する
ファイルの中身をダンプ(1バイトごと16進数などで)し把握して、
それをプログラムが読み込んだとき、同じくダンプした結果が
同じかということがひとつ。このとき、元々の改行コードが
読み込み後も問題ないかをチェックすることは重要です。

そして出力先が要求する改行動作の仕様(CR, CR+LF, LFのどれならば
物理的な表現としての改行をすることになっているのか)を知ること
で、問題を解決できると思います。

では。

Takahiro Nakagawa

unread,
Sep 11, 2014, 7:45:16 AM9/11/14
to android-g...@googlegroups.com
こんばんは、tarofessさん。
ほえんといいます。

もしかしたら、ファイルの文字列に、"おはようございます\n今日は雨です"って、
改行文字ではなく、まんまエスケープシーケンスが入っているんではないですか?

String の"\n"は、コンパイル時に、改行コードに変換されますが、ファイルの
中の"\n"は、変換されないです。

もし、変換したいなら、適切に置換してあげる必要があると思います。

勘違いならすみません、、、。

よろしくお願いします。

2014年9月11日木曜日、tarofess<taro...@gmail.com>さんは書きました:
--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

tarofess

unread,
Sep 11, 2014, 6:04:35 PM9/11/14
to android-g...@googlegroups.com
ほえんさん、おはようございます。
ファイルの中の\nは改行されないのですね…!
ということはコード上で変換しなくてはならないのですよね?
こちらを置換するにはどういう処理をほどこしてあげればいいのでしょうか?
丸投げみたいになって大変申し訳ないのですが、お返事頂けると幸いです。
よろしくお願いします。


2014年9月11日木曜日 20時45分16秒 UTC+9 Takahiro Nakagawa:

tarofess

unread,
Sep 11, 2014, 6:05:23 PM9/11/14
to android-g...@googlegroups.com
武藤さんおはようございます。
返信が遅くなってしまい、大変申し訳ございません。
出力はTextViewへの出力です。
TextViewにそのまま"おはようございます\n今日は雨です"を入れると改行できていました。

ファイルの中身をダンプして把握するというやり方は知りませんでした!
Android初心者に


2014年9月11日木曜日 12時05分20秒 UTC+9 TM:

Takahiro Nakagawa

unread,
Sep 11, 2014, 6:41:40 PM9/11/14
to android-g...@googlegroups.com

ほえんです。

とりあえず、String.replace()で置換できますよ!

よろしくお願いします。

2014/09/12 7:04 "tarofess" <taro...@gmail.com>:

tarofess

unread,
Sep 12, 2014, 7:21:23 PM9/12/14
to android-g...@googlegroups.com
おはようございます、ほえんさん。
String.replaca()を使ったら改行されました!
ずっと試行錯誤してたのですごく嬉しいです!本当にありがとうございました!


2014年9月12日金曜日 7時41分40秒 UTC+9 Takahiro Nakagawa:

ほえんです。

とりあえず、String.replace()で置換できますよ!

よろしくお願いします。


tarofess

unread,
Sep 12, 2014, 7:21:23 PM9/12/14
to android-g...@googlegroups.com

suppi__

unread,
Sep 14, 2014, 10:56:56 AM9/14/14
to android-g...@googlegroups.com
すみません、解決しているようですが・・・
ファイルに「\n」でなく、普通に2行目、3行目・・が書かれているファイルを読み込めばよかったのではないでしょうか?
「\n」と書くのはコード上の「""」内で2行目、3行目・・と書けないので代替として\nと書いてるだけですよ

2014年9月13日 8:21 tarofess <taro...@gmail.com>:

tarofess

unread,
Sep 14, 2014, 7:33:27 PM9/14/14
to android-g...@googlegroups.com
おはようございます、suppiさん。
おっしゃる通り行ごとにファイルを読み込むのも一つの手でしたね。
なにぶん引き出しがまだまだ少ないのでこういうアドバイスはすごくありがたいです。
ありがとうございます。

2014年9月14日日曜日 23時56分56秒 UTC+9 suppi__:
Reply all
Reply to author
Forward
0 new messages