JavaのString……のつづき

マルチポスト元→http://exth.net/~tgbt/wordpress/2009/08/19/2470/


ソースコード

import java.io.*;
/*
java の StringBuilder の挙動を確認するテスト.
StringBuilderで幸せになれる!
(data.txtの中身がhogeなら)全部 hoge が返るモノとばかり思っていたよ!!!
 */

public class fileio2{
    public static final String CLASSNAME = "fileio";

    public static void build(StringBuilder str)
    {
	str.append("hoge");
    }
    public void build2(StringBuilder str)
    {
	str.append("hoge");
    }
    public static void InputStringBuilder(StringBuilder str, String filename){
	String HEADER = CLASSNAME + "::InputString ";
	try{
	    BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
	    String line;
	    while((line = in.readLine())!=null)str.append(line);
	    in.close();
	} catch(Exception e){
	    System.err.println(HEADER + e);
	}
    }



    public static void main(String []args)
    {
	String HEADER = CLASSNAME + "::main ";
	String str = "";
	String filename = "data.txt";

	StringBuilder sb = new StringBuilder();
	build(sb);
	str = sb.toString();
	System.out.println("build 1");
	System.out.println("    : "+sb);
	System.out.println("    : "+str);

	StringBuilder sb2 = new StringBuilder();
	fileio2 f3 = new fileio2();
	f3.build2(sb2);
	str = sb2.toString();
	System.out.println("build 2");
	System.out.println("    : "+sb2);
	System.out.println("    : "+str);

    	StringBuilder sb3 = new StringBuilder();
	InputStringBuilder(sb3, filename);
	str = sb3.toString();
	System.out.println("build 3");
	System.out.println("    : "+sb3);
	System.out.println("    : "+str);
    }
}


実行結果:

build 1
    : hoge
    : hoge
build 2
    : hoge
    : hoge
build 3
    : hoge
    : hoge

StringBuilderで幸せになった.なるほーど.