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();
	}
}

原文地址:https://www.cnblogs.com/Ch1nYK/p/8933071.html