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();
  • 相关阅读:
    Unknown type '246 in column 3 of 5 in binary-encoded result set
    IOS开发常用的linux命令
    苹果开发中常用英语单词
    ios 中的UI控件学习总结(1)
    Srping MVC+mybatis mapping 多映射 配置
    IIS程序POST请求被触发两次的灵异事件
    文件服务器共享专用端口留档记录
    windows环境配置showdoc在线文档教程
    WindowsSever2008 R2 Standard 共享打印机手顺
    高效计算_七月算法5月深度学习班第2次课程笔记
  • 原文地址:https://www.cnblogs.com/wzy330782/p/5471855.html
Copyright © 2011-2022 走看看