IO-字符流-FileReader

举报
互联网老辛 发表于 2021/06/09 01:06:43 2021/06/09
1.5k+ 0 0
【摘要】 FileReader 读数据 构造方法: FileReader(String fileName) 传递要读取的文件名称 成员方法: int read() 读取单个字符并返回 int read(char[] cbuf) 一次读取一个字符数组的数据,返回的是实际读取字符的个数. 输入流读文件的一般步骤: 1.创建输入流对象 2.调用输入流对象的对数据方法 3.释放资源 举例:打...

FileReader 读数据

构造方法:

FileReader(String fileName) 传递要读取的文件名称

成员方法:

int read() 读取单个字符并返回

int read(char[] cbuf) 一次读取一个字符数组的数据,返回的是实际读取字符的个数.

输入流读文件的一般步骤:

1.创建输入流对象

2.调用输入流对象的对数据方法

3.释放资源

举例:打印文件中的内容到公屏上,一次读取一个字符

import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class DemoFileReader {public static void main(String[] args) throws IOException {// 创建输入流对象FileReader fr = new FileReader("a.txt");int ch;// 调用输入流方法读取数据的方法/** ch != -1 ch=fr.read(); 故:(ch = fr.read()) != -1*///while ((ch = fr.read()) != -1) {System.out.println((char) ch);}// 释放资源fr.close();}}
 

注意: a.txt必须存在,如果不存在会报系统找不到文件异常

2.上个范例是把文本内容读取出来打印到公屏上,如果是写入到其他文件,是不是就变成复制了呢

import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class DemoCopyFile {public static void main(String[] args) throws IOException {//创建输入流对象FileReader fr = new FileReader("a.txt");//创建输出流对象FileWriter fw = new FileWriter("Copya.txt");int ch;while ((ch = fr.read()) != -1) {fw.write(ch);}//释放资源fw.close();fr.close();}}
 

上面的例子是一次读写一个字符复制文本文件,效率比较低.接下来我们看看 成员方法中一次一个字符数组的情况.

public class DemoCopyFile {public static void main(String[] args) throws IOException {//创建输入流对象FileReader fr = new FileReader("a.txt");//调用输入流对象读取数据的方法char[] chs = new char[1024];int len;/*while一共做了三件事* 1.fr.read(chs)将数据读取到数组中* 2.len=fr.read(chs) 把读取到的有效个数复制给len* 3.len != -1  判断读取的有效个数是否为-1**/while((len = fr.read(chs))!= -1){System.out.println(new String(chs,0,len));}fr.close();}}
 

在这里什么时候用到字符流呢,一般情况下能够使用系统记事本打开并阅读里面的内容的,我们采用字符流,

本文出自 “xinsz08の平行时空” 博客,请务必保留此出处http://xinsz08.blog.51cto.com/10565212/1941490

文章来源: zmedu.blog.csdn.net,作者:互联网老辛,版权归原作者所有,如需转载,请联系作者。

原文链接:zmedu.blog.csdn.net/article/details/77414690

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。