星空网 > 软件开发 > Java

I/O流——字符流

字符流

字节流提供处理任何类型输入/输出操作的足够功能,但不能直接操作Unicode字符,因而需要字符流。

字符流层次结构的顶层是Reader和Writer抽象类。

实际上,字符流的底层就是字节流。

 

一、Reader

①   Reader是定义Java的流式字符输入模式的抽象类。

②   Reader抽象类中的方法:

a)       public int read(CharBuffer target) throws IOException

b)       public int read()

c)       public int read(char[] cbuf)

d)       public abstract int read(char[] cbuf,int off,int len)

e)       public abstract void close()

 

二、Writer

① Writer是定义流式字符输出的抽象类。

② 该类的方法都返回void值并在出错条件下抛IOException异常。

③ Writer抽象类中方法:

a)         public void write(int c)

b)         public void write(char[] cbuf)

c)         public abstract void write(char[] cbuf,int off,int len)

d)         public void write(String str) throws IOException

e)         public void write(String str,int off,int len)

f)          public Write append(char c)

g)         public abstract void flush()

h)         public abstract void close()

 

三、FileReader

①   FileReader类表示可以读取文件内容的Reader类。

②   构造方法:

a)         FileReader(String filePath)

b)         FileReader(File fileObj)

 

四、 FileWriter

①   FileWriter表示可以写文件的Writer类

②   构造方法:

a)         FileWriter(String filePath)

b)         FileWriter(String filePath,boolean append)

c)         FileWriter(File fileObj)

 

复制文本:

 1     FileReader fr=new FileReader("d:/aa.txt"); 2     FileWriter fw=new FileWriter("d:/c.txt"); 3     char[] buff=new char[100]; 4     int len=0;//实际读到的字符个数 5     while((len=fr.read(buff))!=-1){ 6       fw.write(buff, 0, len); 7       //fw.flush();//当最后不释放资源时,且缓冲区(8K)未写满时强制刷新 8     } 9     fr.close();10     fw.close();//若此处不释放资源,缓冲区未写满,且无刷新语句时,文本将不会被复制进新的文本

 

五、BufferedReader

① BufferedReader通过缓冲输入提高性能

② 两个构造方法:

a)         BufferedReader(Reader inputStream)

b)         BufferedReader(Reader inputStream,int bufSize)

 

六、BufferedWriter

① BufferedWriter通过缓冲输出提高性能

② 两个构造方法:

a)         BufferedWriter(Writer outputStream)

b)         BufferedWriter(Writer outputStream,int bufSize)

 

同样做一个复制文本的功能(复制一个多行文本):

 1     FileReader fr=new FileReader("d:/JavaStudy/First.java"); 2     BufferedReader br=new BufferedReader(fr); 3     FileWriter fw=new FileWriter("d:/abc.java"); 4     BufferedWriter bw=new BufferedWriter(fw); 5     String line=null; 6     while((line=br.readLine())!=null){ 7       System.out.println(line); 8       bw.write(line); 9       bw.newLine();//换行10       //bw.flush();11     }12     br.close();13     bw.close();

 




原标题:I/O流——字符流

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

寄文件到马来西亚用什么快递:https://www.goluckyvip.com/tag/91696.html
哪个快递寄马来西亚:https://www.goluckyvip.com/tag/91697.html
怎么寄快递去马来西亚:https://www.goluckyvip.com/tag/91698.html
马来西亚怎么寄快递:https://www.goluckyvip.com/tag/91699.html
电商是主力:https://www.goluckyvip.com/tag/917.html
EPacket:https://www.goluckyvip.com/tag/9170.html
【再放信号】美国Etsy即将放开中国卖家入驻,官方邮件你收到了吗?:https://www.kjdsnews.com/a/1836640.html
安庆市周边免费景点 安庆免费游玩的地方有哪些?:https://www.vstour.cn/a/365186.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流