zoukankan      html  css  js  c++  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();
  • 相关阅读:
    Windows开启telnet服务 + 连接失败处理
    注册表比较工具
    wmic命令
    python netifaces模块
    【转】wireshark基本用法及过虑规则
    设置Intel网卡以抓取报文的vlan tag
    【转】 中兴OLT-C300常用命令
    Iris分类以及数组reshape想到的
    关于plot画图的原理
    Python的rand vs randn以及linspace
  • 原文地址:https://www.cnblogs.com/wzy330782/p/5471855.html
Copyright © 2011-2022 走看看