比如看这段代码:public static void main(String args[]) throws IOException{

StringBuilder sb = new StringBuilder();
for(int i=0 ; i< 500000 ; i++){
sb.append(i+"新A撒旦法师的\r\n");
}

FileWriter out = new FileWriter("test.txt");
// 一次写入大量数据
out.write(sb.toString().toCharArray());
out.close();
}通过循环得到了一个50万行的数据,并一次性写入了文件.再这样:public static void main(String args[]) throws IOException{

StringBuilder sb = new StringBuilder();
for(int i=0 ; i< 500000 ; i++){
sb.append(i+"新A撒旦法师的\r\n");
}

StringReader in = new StringReader(sb.toString());
FileWriter out = new FileWriter(Config.NEWA);

int n;
while((n=in.read())!= -1){
out.write(n);
}

in.close();
out.close();
}
通过建立流,逐个写入文件.总是觉得前面一种方式不妥,但又不知道梗在哪里?希望哪位能结合源码帮我解释这两种方式的利弊或区别?