java中流的分类;
从流动方向上分:分为输入流和输出流两类。程序可用输出流向文件写数据,用输入流从文件中读取数据。总的来说,输入流针对键盘,输出流针对屏幕。
从读取类型分:一般分为字节流和字符流。字节流是从输入流与输出流派生出来的一系列类,他们以字节为基本处理单位。字符流是从reader与writer派生出的一系列类,它以16位的Unicode码表示的字符为基本处理单位。
从发生的源头分:分为字节流与过滤流,用于直接操作目标设备对应的流叫做字节流。程序可通过过滤流去操作节点流,便于读写各种类型的数据。
1.InputStream的子类
FileInputStream
PipedInputStream
PipedOutputStream
ObjectInputStream
ByteArrayInputStream
SequenceInputStream
FilterInputStream
1.OutputStream的子类
FileOutputStream
PipedOutputStream
ObjectOutputStream
ByteArrayOutputStream
SequenceOutputStream
FilterInputStream
字节流与字符流的转化
输入字节流转为字符流需要用到inputstreamReader的构造方法:
InputStreamReader(InputStream in)
如:
InputStreamReader ins = new InputStreamReader(System.in);
InputStreamReader ins = new InputStreamReader(new
FileInputStream(“test.txt”));
输出字符流转为字节流用到OutputStreamWriter或PrintWriter的构造方法:
OutputStreamWriter(OutputStream out)
PrintWriter(OutputStream out)
如:
OutputStreamWriter outs = new OutputStreamWriter(new
FileOutputStream(“test.txt”));
过滤流的作用
FilterInputStream 和 FilterOutputStream分别重写了父类InputStream和OutputStream的所有方法,对其他输入输出流进行特殊处理。要使用过滤流,首先必须把它连接到某个输入输出节点流上,通常在构造方法的的参数中指定所要连接的节点流:
FilterInputStream(InputStream in);
FilterOutputStream(Outputstream out);
对象的序列化与反序列化
序列化,将实现了Seriallizable接口的对象转换成一个字节序列,并能够在以后将这个字节序列完全恢复为原来的对象,后者又称反序列化。
串行化的目的:便于介质存储和网络传输。
ObjectInputStream类和ObjectOutputStream类可支持此类操作
File类
File类不仅指系统中的文件,也指目录,因为目录也是特殊的文件。
作用:表示一个文件对象,文件路径名字的抽象表示。
对文件读写提供的支持
1.File
2.FileDescriptor
3.FileFilter & FilenameFilter
用于:
File.list(FilenameFilter fnf)
File.listFiles(FileFilter ff)。
4.FileInputStream 读文件。
5.FileReader 读文件。
6.FileOutputStream 写文件。
7.FileWriter 写文件。
8.RandomAccessFile随机访问