Java 文字列の連結という罠(ファイルにゃの読み込み)

Javaにゃで躓いたにゃので、メモメモですにゃん。
テキストファイルを読み込んで、テキストを返すってにゃ処理で、物凄く重たかったにゃのですにゃん。
始めは、文字列にゃの連結にゃを普通にゃににゃってたにゃのですけど、これがどうにゃら駄目でしたにゃ。

	String text = "";
	BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream( inputFilename ), "SJIS" ), 1024*1024*4 );
	String line;
	while ((line = br.readLine()) != null) {
		text += line.trim().replaceAll( "//.*", "" );	// コメント削除して文字列追加
	}
	br.close();
	return text;

StringBufferを使って書き直したら、めっちゃ早くにゃったですにゃん。

	String text = "";
	StringBuffer tmp = new StringBuffer( 1024*1024*4 );
	BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream( inputFilename ), "SJIS" ), 1024*1024*4 );
	String line;
	while ((line = br.readLine()) != null) {
		tmp.append( line.trim().replaceAll( "//.*", "" ) );	// コメント削除して文字列追加
	}
	text = tmp.toString();
	tmp = null;
	br.close();
	return text;

Stringにゃ連結にゃと10分ぐらいかかってにゃのが、数秒程度にゃに。

にゅぅ、常識にゃんだろうにゃ〜〜。
メモメモがわりにゃに。