I/O(二)FileReader和FileWriter和PrintWriter

来源:互联网 发布:js鼠标经过提示信息 编辑:程序博客网 时间:2024/06/05 09:48

FileReader 字符输入流,从文件中读取,是一个字符一个字符的读取,但是只能读取纯文本内容,当读取一段视频的时候很有可能出错,因为每读一次只读取16位的,如果读取完毕之后剩下一个位没有读取,那么肯定会出现乱码问题。

FileReader fr=new FileReader("c:\\11.txt");

int hasRead=0;

char[] c=new char[32];

while((hasRead=fr.read(c))!=-1){

String ss=new String(c,0,hasRead);

System.out.println(ss);

}

fr.close();

 

这里有一个字符数组,像字节流一样定义一个舀水的工具,这个大小一般的是2的多少次方或者说是一个偶数就可以。

 

FileWriter 字符输出流往文件中输出东西。一个字符一个字符的写出去,

FileWriter fw=new FileWriter("c:\\11.txt",true);

String s="庄生晓梦迷蝴蝶,望帝春心托杜鹃";

fw.write(s);

fw.flush();

fw.close();

 

这里往文件11.txt中写入字符串s,字符流写的是一个char类型的参数,String类型就是一个一个的char字符组成的,所以不用转成byte类型,这里注意在构建这么一个输出流的时候括号里面有两个参数,一个是文件的地址,要往哪个文件中去写,另一个是boolean类型的参数,这个参数表示是否以追加的模式去写,如果不是追加,则每次写入的东西都会覆盖原来的,写上true之后,就不会覆盖。

另外如果我们往文件用字符流写,还可以用printwriter这个类来写,

PrintWriter pw=new PrintWriter("c:\\11.txt");

pw.println("大江东去浪淘尽");

pw.println("千古风流人物");

pw.flush();

这种方式想怎么写就可以,而且还有c语言中那种printf方法的东西。

0 0
原创粉丝点击