importjava.io.BufferedWriter;importjava.io.FileWriter;importjava.io.IOException;classFileWriterDemo{publicstaticvoidmain(Stringargs[])throwsIOException{char[]cha=newchar[...
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
class FileWriterDemo
{
public static void main(String args[]) throws IOException
{
char[] cha=new char[8*1024+1]; //长度为8k+1的字符数组
for(int x=0;x
{
cha[x]='a';
}
String s=new String(cha); //将字符数组转成字符串
FileWriter fw=new FileWriter("c:\\demo.txt");
fw.write(s); //向流中写入字符串s
//注意:最后没有任何flush() 动作
}
}
结果在“Demo.txt”文本中保存了8k个字符。
查看Writer类的源代码,里面定义的字符缓冲数组长度是这样定义的
如果要接收的字符串(或字符数组)长度小于1024,则使用的是长度为1024的缓冲数组;
如果接收的字符串(或字符数组)长度大于1024,则创建一个相同大小的缓冲数组。
这么说在上面代码中就应该创建一个长度为(8*1024+1)的字符数组来缓冲输出,为什么会将前8k个字符提前输出?
展开