java.io整合

来源:互联网 发布:linux串口编程 select 编辑:程序博客网 时间:2024/06/12 18:49

按不同方式分3类:

输入流和输出流
    站在程序的角度上讲,而不是文件的角度上,程序要:输入流,程序给:输出流。

字节流和字符流
    一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个字符=两个字节。字符表示unicode

节点流和处理流
    节点流为可以从一个特定数据源读写数据。
    处理流是在存在的流(节点流或处理流)之上,通过对数据的处理更为强大的读写功能。

抽象类  字节流  字符流
输入流  InputStream Reader
输出流  OutputStream Writer

InputStream:
方法:int read()  throws Exception
   int read(byte[] buffer)
  int read(byte[] buffer,int offset,int len)
       void close()  ..
  long skip(long n)   ..


OutputStream:
方法:
  void write(int b)  throws Exception
  void close()
  void flush()输出缓冲区数据写到目的地
Reader:数据单位16位
方法:
  一样
  int read(char[] buffer)


Writer:
方法:
  类似
  int write()

File、Array(CharArray / ByteArray)、String、Pipe(管道)与输入输出流抽象类的组合

类型  字符流  字节流
File    FileReader FileInputStream
      FileWriter FileOutputStream
Memory Array      charArrayReader ByteArrayInputStream
                  charArrayWriter ByteArrayOutputStream
Memory String     StringReader --
                            StringWriter --
Pipe                     PipeReader PipeInputStream
                            PipeWriter PipeOutputStream


字节流:
Inputstream
Outputstream
FileInputstream
FileOutputstream

字符流:
Reader
Writer
FileReader
FileWriter

字节转向字符
InputstreamReader
OutputstreamWriter

缓冲流:
BufferedReader
BufferedWriter  --readLine():好用

控制台标准流:
System.in   --InputStream
System.out  --Printstream
System.err

按长度流:
ByteArrayInputstream
ByteArrayOutputstream
DateInputstream
DateOutputstream

1.5jdk新增:
PrintWriter   --有自动flush功能
PrintStream 

ObjectInputSream
ObjectOutputSream

serializable:序列化,数据库的持久,javaBean中实现该接口(或是其子接口)

高级参见java.nio