IO---字符流

字符流
***
字符流=字节流+编码表(由字符及其对应的数值组成的一张表,各个国家的文字用数字来表示,并一一对应,形成一张表)

常见编码表

  • ASCII/Unicode 字符集
  • ISO-8859-1
  • GB2312/GBK/GB18030
  • BIG5
  • UTF-8

字符输入流

    public abstract class Reader implements Readable, Closeable
  • 方法

    abstract  void close()                              //关闭该流并释放与之关联的所有资源。 
    void mark(int readAheadLimit)                       //标记流中的当前位置。 
    boolean markSupported()                             //判断此流是否支持 mark() 操作。 
    int read()                                          //读取单个字符。 
    int read(char[] cbuf)                               //将字符读入数组。 
    abstract  int read(char[] cbuf, int off, int len)   //将字符读入数组的某一部分。 
    int read(CharBuffer target)                         //试图将字符读入指定的字符缓冲区。 
    boolean ready()                                     //判断是否准备读取此流。 
    void reset()                                        //重置该流。 
    long skip(long n)                                   //跳过字符。 

FileReader

    public class FileReader extends InputStreamReader

eg

import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

public class RWTest {
    
    public static void main(String[] args) throws IOException {
        Reader in = new FileReader("D:/blog/test.txt");
        int len = -1;
        while((len = in.read())!=-1){
            System.out.print((char)len);
        }
        in.close();
    }
}

字符输出流

    public abstract class Writer implements Appendable, Closeable, Flushable
  • 方法

    Writer append(char c)                                   //将指定字符添加到此 writer。 
    Writer append(CharSequence csq)                         //将指定字符序列添加到此 writer。 
    Writer append(CharSequence csq, int start, int end)     //将指定字符序列的子序列添加到此 writer.Appendable。 
    abstract  void close()                                  //关闭此流,但要先刷新它。 
    abstract  void flush()                                  //刷新该流的缓冲。 
    void write(char[] cbuf)                                 //写入字符数组。 
    abstract  void write(char[] cbuf, int off, int len)     //写入字符数组的某一部分。 
    void write(int c)                                       //写入单个字符。 
    void write(String str)                                  //写入字符串。 
    void write(String str, int off, int len)                //写入字符串的某一部分。 

FileWriter

    public class FileWriter extends OutputStreamWriter

构造方法里FileWriter(String fileName, boolean append) append默认是false,表示写入数据追加到已有数据后面,false表示覆盖原数据。

eg

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

public class RWTest {
    
    public static void main(String[] args) throws IOException {
        Writer out = new FileWriter("d:/blog/test.txt");
        //Writer out = new FileWriter("d:/blog/test.txt",true);
        out.write("6666");
        out.close();
    }
}

猜你喜欢

转载自www.cnblogs.com/Ch1nYK/p/8933071.html