0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[備忘録]Java/Android 実行環境での改行コード取得

Posted at

#改行コード

  • CR: 復帰、\r
  • LF: 改行、\n
  • CR + LF: \r\n

\n とか \r はエスケープシーケンスで、16進数の数値にすると 0X0A, 0X0Dらしい。
また、WindowsではCR+LF、unix系ではLF、MacOSではCRなど、実行環境によって使用する改行コードが異なる。

#実行環境での改行コード取得方法

final String BR = System.getProperty("line.separator");

これで、(アンドロイドに限らず)このコードの実行環境でのエスケープシーケンスが取得できる。

##アンドロイドでの改行コード
↓実行してみた。
image.png
アンドロイドでの改行コードは"\n"(LF)ということが分かった。

###(おまけ)(どうでもいい話)改行コードが分かるといろいろ便利
改行コードがわかるといろいろ便利である。
例えば、下のコードはファイルを読み込むコードの一部だが、bufferedReader.readLine()をすると文中の改行コードが消えてしまう。
そこで、読み込んだ1行をstringBuilderに追加したあと、改行を加えることで本来の位置に改行が存在することになる。ここで正しい改行コードを追加できないと期待通りの動きができなくなってしまうので、上記のやり方でコードを取得するといいだろう。
もちろん、わかっている場合はSystem.getProperty()を使わずにそのまま"\n"なり"\r"なりを入れればいい。

FileInputStream fileInputStream = context.openFileInput(fileName);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream, StandardCharsets.UTF_8));
String line = bufferedReader.readLine();  // 最初の行を読み込む. 読み込み用のString変数
while (line != null) {
        //読み込んだ行を追加する
        stringBuilder.append(line);
        //改行コードを追加する
        final String BR = System.getProperty("line.separator");
        stringBuilder.append("BR");
        //次の行読み込み
        line = bufferedReader.readLine();
}
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?