A. FileWriter进行write()操作时,先将数据写入缓冲区,再刷新写入,为什么还要用BufferedWriter
BufferedWriter bw = new BufferedWriter(new FileWriter( "filename "));
一般写文件时经常这么用,表示加了一个缓冲,缓冲写满后在将数据写入硬盘,这样做极大的提高了性能
如果单独使用 FileWriter每写一个数据,硬盘就有一个写动作,频繁写硬盘,对性能有影响。
B. 用FileReader的read()方法实现读字符文件,FileWriter的write()方法实现写字符文件
如果读到文件末尾,read()方法会返回-1,如:
public static void main(String[] args) throws Exception {
FileReader fr = new FileReader("f:/test.txt");
try {
int i;
while ((i = fr.read()) != -1) {
System.out.print((char) i);
}
} finally {
fr.close();
}
}
C. java如何使用文件字符输出流FileWriter
文件字符输出流继承自Writer类,提供了向文件输出的各种方法,数据通过文件字符输出流以字符为单位输出并保存到文件中
D. java中使用FileWriter流写入文件数据,只能写一部分,什么原因,求解答
BufferedWriter bu=new BufferedWriter(new FileWriter("file.txt")); String filetxt=jTextArea1.getText(); String pp[]=filetxt.split("\n"); for(int i=0;i<pp.length;i++){ bu.write(pp[i]); bu.newLine(); } bu.flush(); bu.close(); JOptionPane.showMessageDialog(this,"文件保存成功"); //就这样 放到你按钮的事件下就可以了 jTextArea1 是文本域 file.txt 是文件名 可以改成绝对路径
E. Java filewriter括号里得地址后面写true和false有什么用
您好,提问者:
如果FileWriter("dir",true);的话表示这个文件不会被重新生成,会覆盖。
而且写入的内容是从这个文件的结尾开始写入。
说白了就是续写,原来的内容还在。
F. 为什么java中只有FileWriter的时候要注意用flush,OutputStreamWriter和OutputStream没提到用flush方法。
因为FileWriter是将字符写入文件中,flush方法可以及时将缓冲区的内容写入文件,以刷新文件的内容。这样,共享此文件的其它使用者,不用一直等到你的程序结束,就能看到最新的内容。
G. 关于 FileWriter 和 OutputStreamWriter
FileWriter是OutputStreamWriter的子类,里面没有实现子类方法也就是FileWriter完全使用的是父类OutputStreamWriter已有的方法 就是FileWriter提供了很多方便的构造函数
简单来说:
对于一个已有的File对象file
可以直接构造出一个FileWriter
FileWriter fw =new FileWriter(file);
而不能直接构造出一个OutPutStreamWriter
OutputStreamWriter outputStreamWriter =new OutputStreamWriter(new FileOutputStream(new File("xxx")));
而使用上无差别
H. FileWriter中的某个方法详解
public void write(int c) throws IOException写入单个字符
你想想..参数明明是int..怎么是写入单个字符呢..
在java中..字符采用的编码是Unicode编码..Unicode是2个字节..0-65535吧..貌似..所以那个int对应的就是该字符的Unicode编码..
但是..int是4个字节..
比如你调用write(2);..
将2转换为2进制是10..如果是int就是4个字节..那么就是..00000000000...10共32位..
而Unicode只有2个字节16位..
怎么办呢..所以他忽略16高位..也就是前面的16位..取后16位..取出来就是0000000...10共16位..值还是没变..也就是说如果你传的值小于65535都不会有任何问题的..如果大于的话..就去掉高位的了..
如果你想用这个方法写入"Hello Java"的话..
直接
FileWriter fw = new FileWriter("test.txt");
char[] cs = "Hello Java".toCharArray();//转换为字符数组
for(char c : cs) {
fw.write(c);//直接这样就行..他会自动转换为其Unicode编码..或者fw.write((int)c);强制转换一下也行
}
fw.flush();
fw.close();
I. Java中FileWriter和Writer有什么分别
Writer是一个 abstract 的类,不能直接初始化,只是,提供了 输出的基本包装
FileWriter 是 采用 FileOutputStream 作为Writer 输出的源
writer 对FileOutputStream 进行了包装。让你输出的时候,不用在一个个字节的输出,可以一行行的输出