黑马程序员技术交流社区

标题: FileReader [打印本页]

作者: xiaomilu    时间: 2017-4-2 19:13
标题: FileReader
构造方法
public  FileReader(String fileName) 传递要读取的文件名称 要求文件必须存在

成员方法
int read() 读取单个字符并返回  读取到文件末尾返回-1
int read(char[] cbuf) 一次读取一个字符数组的数据,返回的是实际读取的字符个数

输入流读文件的步骤:
          1.创建输入流对象
FileReader fr = new FileReader("a.txt");
          2.调用输入流对象的读数据方法
fr.read();
         3.释放资源
fr.flush();
fr.close();

注意:如果构造方法中的文件不存在,会抛异常
        java.io.FileNotFoundException: fr.txt (系统找不到指定的文件。)
一次读一个字符
//1创建输入流对象
        //FileReader fr = new FileReader("fr.txt");
        FileReader fr = new FileReader("a.java");

        //2调用输入流对象的读数据方法
        int ch;
        while((ch=fr.read())!=-1) {
            //System.out.println(ch);
            //System.out.println((char)ch);
            System.out.print((char)ch);
        }
        //3释放资源
        fr.close();

一次读一个字符数组
/1/创建输入流对象
     FileReader fr = new FileReader("FileWriterDemo.java");

//2调用输入流对象的读数据方法
        //int read(char[] cbuf):一次读取一个字符数组的数据,返回的是实际读取的字符个数
        char[] chs = new char[1024]; //这里可以是1024及其整数倍
        int len;
        /*
         * while循环的条件表达式一共做了3件事情
         *  1:fr.read(chs) 把数据读取到数组中
         *  2:len=fr.read(chs) 把读取的有效个数赋值给len
         *  3:len != -1 判断读取的有效个数是否为-1
         */
        while((len=fr.read(chs))!=-1) {
            System.out.print(new String(chs,0,len));
        }

        //3释放资源
        fr.close();







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2