FileWriter和FileReader解析

来源:互联网 发布:斗鱼装机王哥淘宝店 编辑:程序博客网 时间:2024/05/18 00:51

  FileWriter和FileReader是用来实现将字符读写到文件的IO类。

1.FileWriter

  是用来方便的将字符数据写入文件的类,这个类的构造函数假设默认的字符编码方式和缓冲区大小的可被接受的,如果要改变指定编码和缓冲区大小可以用FileOutputStream来构造一个OutputStreamWriter来实现。
  当文件没有找到时,一般是可以自动创建文件,但这也和平台有关,有的平台不允许创建文件。FileWriter是用来写字符流的,如果要写字节流数据,请使用FileOutputStream。主要的构造函数有:
FileWriter(File file)
用File对象来构造FileWriter,写数据时,从文件开头开始写起,会覆盖以前的数据

FileWriter(File file, boolean append)
还是用File对象构造,如果第二个参数为true的话,表示以追加的方式写数据,从文件尾部开始写起

FileWriter(FileDescriptor fd)
用文件描述符来构造FileWriter

FileWriter(FileDescriptor fd, boolean append)
用文件描述符来构造,第二个参数为true的话,表示以追加的形式写入数据

FileWriter(String fileName)
用文件的路径名来构造FileWriter

FileWriter(String fileName,boolean append)
用文件路径名来构造FileWriter,第二个参数为true的话,表示以追加的形式写入文件

大部分方法集成于Writer,请点击这里查看;其他主要方法有:
String getEncoding()
查看编码方式,返回时编码范式

void write(char[] cbuf, int off, int len)
将字符数组的一部分写入到流中。将cbuf[off],cbuf[off+1],…,cbuf[off+len-1]部分字符
写入到流中,但能不能写len个字符取决于cbuf中是否有那么多

2.FileReader

  用来方便的从文件中读出字符的类,默认编码和默认缓冲区大小假设是可以接受的。如果要改变默认编码和默认缓冲区大小可以用FileInputStream来构造InputStreamReader来实现。FileReader意味着是用来读字符的流,要实现读取字节流,请考虑使用FileInputStream。
构造函数有:
FileReader(File file)
用File对象来构造FileReader

FileReader(FileDescriptor fd)
用文件描述符构造FileReader

FileReader(String fileName)
用文件的路径名来构造FileReader

主要的函数大多集成于Reader类,请点击这里查看。其他主要的函数有:
public String getEncoding()
返回这个流使用的编码方式

3.例子

  实现向文件中写入字符串,写入中文,写入数字等。注意Reader和Writer是用来的字符进行写入的,如果直接将int型数据作为参数的话,是不会写入数字的,而是现将数字按照ascll码表转换为相应的字符,然后再写入。要想实现数字和中文的写入,必须要用String为参数的Write。

FileWriter写入例子:

import java.io.FileWriter;import java.io.IOException;public class FileTest {    public static void main(String[] args) throws IOException{        String filePath = "G:\\test2.txt";        FileWriter fw = new FileWriter(filePath);        String str="sdndanudn中华人民共和国主席,daduca1266d8523189588";        int type = 103658;        char ch = 'A';        fw.write(str);        fw.write('\n');        fw.write(type+"");                     //若直接用type作为参数,写入的是type按ascll码对应的字符        fw.write('\n');                        //换行符也可以直接写入        fw.write(ch);                          //字符可以直接写入        fw.flush();        fw.close();    }}

FileReader例子代码:

import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;public class FileTest {    public static void main(String[] args) throws IOException{        String filePath = "G:\\test2.txt";                             //文件路径        FileReader fd = new FileReader(filePath);                      //构造FileReader             char[] chs = new char[1024];              while(fd.read(chs) != -1){                                     //每次读1024个字符            System.out.print(chs);        }    }}

运行结果:
写入文件
写入文件

文件读出
读出文件

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 盆骨一边大一边小怎么办 快生了宫颈管长怎么办 想顺产 宫颈管长怎么办 腰和跨一样宽怎么办 脚后跟骨折手术后小腿变细怎么办 生完孩子骨盆错位怎么办 皮肤又黑又粗糙怎么办 翠研珠宝被坑了怎么办 领导是小人我该怎么办 微信二维码重置了怎么办 衣服有蝽的卵怎么办 人坐牢去了房贷怎么办 人死了欠的房贷怎么办 体育生文化没过怎么办 舍友偷了钱没证据怎么办 舍友要一直开空调怎么办 和大学室友相处不愉快怎么办 和舍友三观不合怎么办 室友欠200钱忘了怎么办 和舍友闹矛盾了怎么办 被宿舍人孤立了怎么办 分到一个爱管事的舍友怎么办 添加了村人名录怎么办 打csgo出现卡顿怎么办 csgo创意工坊下载慢怎么办 电脑全是英文死机了怎么办 亿盛国际出金后不到账怎么办 玩游戏的界面很大怎么办电脑 文件缺失导致电脑无法启动怎么办 眼睛里拉出白丝怎么办 脚扭了脚面肿了怎么办 伪音唱歌嗓子疼怎么办 小孩吊水手肿了怎么办 棉质地的裙子起褶子怎么办 孕妇吃了马苋菜怎么办 三非黑人抓住了怎么办 33岁了写字好丑怎么办 裤子熨焦了发亮怎么办 黑裤子熨亮了怎么办 。P手机没有钤声怎么办 处处被小人其欠负怎么办???