JAVA高级视频_IO输入与输出_收获四

来源:互联网 发布:卡尔-安东尼·唐斯数据 编辑:程序博客网 时间:2024/05/06 17:26



java 高级视频教程 02——11.swf——15.swf

包装类的概念与作用

java的数据类型有:原始数据类型跟引用数据类型;

包装类的作用就是将原始数据类型转换成引用数据类型
——就是将原始数据类型当作对象进行操作。

输出包装类顺序:程序——包装流类——节点流类——目标
输入包装类顺序:目标——节点流类——包装流类——程序

BufferedInputStream类与BufferedOutputStream类
缓冲流为I/O增加了内存缓冲区,具有两个目的:
1、允许java程序依次不只操作一个字节,提高的程序性能。
2、有了缓冲区,使得流在执行上skip、mark、reset方法都成为可能。

BufferedInputStream构造函数:
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in,int size)
BufferedOutputStream构造函数:
BufferedOutputStream(OutputStream out)
BufferedOutputStream(OutputStream out,int size)

BufferedReader和BufferedWrite类
BufferedReader的readLine方法依次读取一行文本
BufferedWrite的newLine方法可以想字符流中写入不同操作系统下的换行符(生成跟平台相关的)

DataInputStream类与DateOutputStream类

DateOutputStream三个写入字符串方法:
pubilc final void wreitBytes(String s)
pubilc final void wreitChars(String s)
pubilc final void wreitUTF(String str)

程序——》DataOutputStream——》BufferedOutputStream——》FileOutStream——》文件
程序《——DataInputStream《——BufferedInputStream《——FileInputStream《——文件

关闭流栈中的最上层流对象,将会自动关闭流栈中所有底层的流对象。

PrintStream类

PrintStream类提供了一系列的print和println的方法,可以将基本数据类型的数据格式化成为字符串输出。

PrintStream的构造函数:
PrintStream(OutputStream out)
PrintStream(OutputStream out,boolean autoflush)指定是否自动刷新缓冲区
PrintStream(OutputStream out,boolean autoflush,String encoding)指定字符集编码

与PrintStream对应的PrintWrite类,及时遇到了文本换行表示(/n),PrintWrite类也不会自动清空缓冲区。
PrintWrite的println方法可以根据不同操作系统生成对应的文本换行标识符。

ObjectInputStream类与ObjectOutputStream类

ObjectInputStream和ObjectOutputStream类主要用于从底层输入流中读取对象类型的数据和对象类型的数据写入底层输出流。
ObjectInputStream和ObjectOutputStream类所读取到的对象必须实现了Serializable接口。对象汇总的transient和static类型的成员变量不会被读取和写入。


字节流与字符流的转换
InputStreamReader和OutputStreamWrite,是用于将字节流转换成字符流来读写的两个类,InputStream可以将一个字节流中的字节解码成字符后读取,OutputStreamWrite将字符编码成自节后写入到一个字节流中。

InputStreamReader两个主要构造函数:
InputStreamReader(InputStream in)
InputStreamReader(InputStream in,String CharsetName)
OutputStreamWrite两个主要构造函数:
OutputStreamWrite(OutputStream out)
OutputStreamWrite(OutputStream out,String CharsetName)

在实际情况中,避免频繁的在字符与字节之间进行转换,最好不要直接使用。

InputStreamReader和OutputStreamWrite类来读写数据,应尽量使用BufferedWrite类包装OutputStream类,用BufferedReader类包装InputStreamReader。


Java程序与其他进程的数据通信。

在java程序汇总可以用Process类的实例对象来表示子进程,子进程的标准输入和输出不在连接到键盘和显示器,二十一管道流的形式连接到父进程的一个输出流和输入流对象上。
调用Process类的getOutputStream和getInputStream方法可以获得连接到子进程的输出流和输入流对象。

记住调用Process类的destroy方法结束子进程的运行。


Decorator设计模式在IO中的应用

在程序中用一个对象包装另外的一个对象,这是一种被称为Decorator的设计模式。
如果设计自己的IO包装类,这个类需要继承以FilterXXX命名的类,例如,设计一对输入输出包装类:RecordInputStream和RecordOutputStream,来完成从数据库文件中读取记录和往数据库文件中写入记录。

Exception类从Throwable类继承的三个printStackTrace方法的定义如下:
public void printStackTrace()
public void printStackTrace(PrintStream s)
public void printStackTrace(PrintWriter s)








原创粉丝点击