Day17_99_IO_FileReader文件字符输入流

FileReader文件字符输入流

  * 继承结构
     Java.lang.Object 
          - java.io.Reader; 抽象类
                 java.io.InputStreamReader; <转换流: 字节输入流转换为字符输入流>
                         java.io.FileReader;  <文件字符输入流>
 
 * 文件字节输入、输出流的read和write方法使用字节数组读写数组读写数据,即以字节为单位处理数据,字节流不能够很好操作Unicode字符,比如一个汉字在文件中占2个字节,试过使用字节流,读取不当会出现乱码的现象, 
   字符输入流和输出流的read和write方法使用字符数组读写即以字符为单位来处理数据。

   
 * 代码:


    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;

    public class FileReaderTest01 {
        public static void main(String[] args) {

            //创建路径
            String fileName="D:\\TestFile\\JavaTestFile\\FileOutputStreamTest01.txt";

            //创建字符输入流对象
            FileReader fr=null;
            try {

                  //创建字符输入流
                  fr=new FileReader(fileName);

                /* 方式一:开始读取文件 直接用read()
                int temp=0;
                while((temp=fr.read())!=-1){
                    System.out.println(temp);
                }*/


                // 方式二: 开始读取文件 用read(char[])
                //创建char数组
                char[] chars=new char[512] ;  // 1kb
                int temp=0;
                while((temp=fr.read(chars))!=-1){
                    System.out.println(new String(chars,0,temp));
                }


            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {

                    fr.close();

                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }
    }
posted @ 2021-04-12 10:49  失昼  阅读(48)  评论(0)    收藏  举报