IO基础

一:IO流整体说明?

用的是装饰模式,装饰模式有四个角色,分别是通用接口、本原、抽象装饰、具体装饰,因为是将本原聚合到了装饰中,所以可以将本原或装饰通过构造子注入到另一个装饰,多个装饰可以随意的组合,形成一个综合的功能对象。

io流分为输入流及输出流,输入流是文件到内存,输出流是内存到文件。

流分为低层流及高层流,在实例化高层流时必须通过构造子将低层流注入到高层流中。输入流通用的方法是read(),read(char[]),read(byte[]),readline

输出流的通用方法是write(int),write(byte[]),write[char[]],print("string")

当读取一个文件时,对于以字节/字节数组,字符/字符数组读取的结束条件是!=-1,对于以字符串读取的结束条件是!=null

对于有缓存的输出时,要想写入到文件必须flushclose

 

二:输入字节流的体系结构?

输入字节流的体系结构:

InputStream

FileInputStream FilterInputStream

ObjectInputStream DataInputStream BufferedInputStream

实现代码:

--读一个字节

int temp=fis.read();

while(temp!=-1)

{

System.out.print(temp);

temp=fis.read();

}

--读一批字节

byte[] bytes=new byte[1000];

int result=fis.read(bytes);

while(result!=-1)

{

String temp=new String(bytes,0,result);

result=fis.read(bytes);

}

 

三:输出的字节流体系结构?

输出的字节流的体系结构:

OutputStream

FileOutputStream FilterOutputStreame

ObjectOutputStream BufferedOutputStream DataOutputStream  

PrintStream

实现代码:

int temp;

fis.write(temp);

byte temps[]=new byte[1000];

fos.write(temps);

 

四:输入的字符流体系结构?

输入的字符流的体系结构:

Reader

FileReader InputStreamReader(将字节流转化字符流)

BufferedReader(有缓存)

实现代码:

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

String temp=br.readLine();

while(temp!=null)

{

temp=br.readLine();

}

 

五:输出的字符流体系结构?

输出的字符流的体系结构:

Writer

FileWriter OutputStreamWriter

BufferedWriter PrintWriter

实现代码:

fw.write(int)

fw.write(char[])

fw.write("string");

 

六:PrintStreamBufferedWriterPrintWriter的比较?

PrintStream:属于字节流,即可以打印字节也可以打印数组

写入文件不用closeflush

e.printStackTrace()System.out.println()都是它的实例。

BufferedWriterPrintWriter:属于字符流,只可以打印字符或字符串

因为有缓存,要想写入文件必须closeflush

posted on 2016-07-21 22:51  乐可2016  阅读(252)  评论(0编辑  收藏  举报