用户工具


面向字节

OutputStream

输出一个比特,这个接口用户输出二进制数据,常常用在,文件,网络操作

  • 核心方案:public abstract void write(int b) throws IOException;

FileOutputStream

打开文件,输出一个byte,输出byte数组

  • 核心方法:private native void open0(String name, boolean append);
    • 打开文件
  • 核心方法:private native void close0() throws IOException;
    • 关闭文件
  • 核心方法:private native void write(int b, boolean append) throws IOException;性能低
    • 单个byte写入
  • 核心方法:private native void writeBytes(byte b[], int off, int len, boolean append);性能高
    • 批量写入

面向字符

Writer

说明:定义了一个写char[]的行为,至于写到哪里去由不同类实现。写到文件就使用FileWriter,写到控制台就用PrintWriter等等。以FileWriter来说,他接收一个FileOutputStream类型的参数,依靠它才真正将数据写入文件。

PS:其实大部分操作底层还是转成字节,面向字符的接口大部分情况下只是对编程友好一些而已

  • 核心方法:abstract public void write(char cbuf[], int off, int len) throws IOException;

OutputStreamWriter

  • 核心成员:OutputStream out;

    PS: FileWriter = new OutputStreamWriter(new FileOutputStream(fileName));

  • 核心成员:StreamEncoder se;

对二进制,按不同字符集编码。构造函数 StreamEncoder(OutputStream out, Charset cs);

BufferedWriter

说明:包装Writer.write方法。尽可能减少系统调用次数,将多次写入合并成一次,提高性能

  • 核心成员:char cb[]
    • 缓存多次小数据。
  • 核心成员:Writer out
    • 缓存满了之后调用 out.write方法。将数据写出