zoukankan      html  css  js  c++  java
  • 字符流

       字符流:
     1.1Reader/Write(字符流的输入和输出流,相对于java文件而言)
     1.2能够用TXT编辑器打开的文件,且不乱码就是字符文件可以用字符流来操作
      而不能打开的文件,则是字节文件。
     2.输入流Reader类(抽象类)
      2.1常用方法

        int read();  //读取单个字符

        int read(byte [] c)  //返回实际读取的字符数

        int read(char[] c,int off,int len)    

        void colse()    //关闭流

      2.2FileReader类(是Reader的子类)

      2.2.1 读取方法:File f=new File("文件路径");

                Reader fr=new FileReader("文件路径"/f);

        示例:

        Reader fr=null;
          StringBuffer sbf=null;
                try {
               fr=new FileReader("D:\\Test\\test.txt");
               sbf=new StringBuffer();
               int length;
               while((length=fr.read())!=-1){
                char c=(char)length;
                sbf.append(c);
           }
             System.out.println(sbf.toString()); //输出数据
            } catch (FileNotFoundException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
      }   catch (IOException e) {
           // TODO Auto-generated catch block
             e.printStackTrace();
            }finally{
               if(fr!=null){
                try {
               fr.close();
              } catch (IOException e) {
             // TODO Auto-generated catch block
                 e.printStackTrace();
          }
           }
          }

      2.3字符输入流(BufferedReader类)

        2.3.1:优势:提高了读取文件的效率。

        2.3.2:创建对象:

          Reader fr=new FileReader("文件路径(相对或绝对路径)");

          BufferedReader br=new BufferedReader(fr);或BufferedReader br=new BufferedReader(new FileReader(“文件路径(相对或绝对路径)”));  

        2.3.3:   br.readerLine();    读取一行数据

        示例:

            Reader fr=null;
            BufferedReader br=null;
            try {
             //先创建一个FileReader对象
             fr=new FileReader("D:\\Test\\test.txt");
       
             //在创建一个BufferedReader对象
             br=new BufferedReader(fr);
       
             //读取每一行数据
             String line=br.readLine();
             while(line!=null){
                System.out.println(line);
              line=br.readLine();//再次赋值进行判断
               }
            } catch (FileNotFoundException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
          } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
            }finally{
               try {
            br.close(); //先关
            fr.close();
             } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
                 }
                }

    3.字符输出流Writer类

        3.1常用方法:

          write(String s);      将str字符串里包含的字符输出到指定的输出流中

          write(String s,int off,int len)

          void close()    关闭输出流

          void flush()    刷新输出流

        3.2FilerWrite(是write的子类)

        3.3读取方法:

          Writer fr=new FileWriter("文件路径");

        示例:

        Writer fw=null;
      
           try {
           //创建一个FileWrite对象
             fw=new FileWriter("D:\\Test\\简介.txt");
       
           //写入信息
             fw.write("我热爱我的团队!"+"\r\n");
             fw.write("张三"+"\r\n");  //\r\n进行换行
             fw.write("18岁");
             fw.flush();  //刷新缓冲区
            } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
              }finally{
               try {
                fw.close();
             } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
           }
            }

        3.4:字符输出流BufferedWrite类  

          3.4.1:创建对象:

            BufferdWriter bw=new BufferedWriter(new FileWrite(“文件路径”))  

        示例:

        Writer fw=null;
          BufferedWriter bw=null;
      
            try {
               fw=new FileWriter("D:\\Test\\hello.txt");
       
                 bw=new BufferedWriter (fw);
       
               //写入信息
             bw.write("大家好");
             bw.write("我正在学习BufferedWriter。");
             bw.newLine();  //换行
             bw.write("请多多指教!");
             bw.flush();  //刷新缓冲区
             bw.close();  //关闭流
             System.out.println("成功插入数据!");
       
             //读取文件内容
             FileReader fr=new FileReader("D:\\Test\\hello.txt");
             StringBuffer sbf=new StringBuffer();
             int length;
             while((length=fr.read())!=-1){
              char c=(char)length;
              sbf.append(c);
             }
           System.out.println(sbf.toString());
          } catch (IOException e) {
           // TODO Auto-generated catch block
             e.printStackTrace();
            }

     
     
  • 相关阅读:
    一维数组
    do while循环(熟悉)
    while循环的概念和使用
    break关键字
    continue关键字
    for循环的概念与使用
    switchcase分支结构
    if else if else分支结构
    关于scanf()读取与返回值和回车键的问题
    WCF通过IIS寄宿服务
  • 原文地址:https://www.cnblogs.com/tz4630/p/6877382.html
Copyright © 2011-2022 走看看