1.Java中流的分类有哪些?
按流方向分类:输入流,输出流
按流内容分类:字符流,字节流
按源头分类:节点流和过滤流
2.字节流InputStream和OutputStream的子类分别有哪些?请举例说明其使用场景。与其对应的字符流分别有哪些
字节输入流:
InputStream is = new FileInputStream(file_path);
int len = 0;
while((len = is.read()) != -1){
System.out.println((char)len);
}
字节输出流:
OutputStream os = new FileOutputStream(file_path);
os.write(int a);//输出一个字节
os.write(byte[] buffer,int pos,int len);
反序列化:
ObjectInputSteram ois = new ObjectInputStream(new FileInputStream(file_path));
Obj obj = (obj)ois.readObject();
序列化:
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file_paht));
oos.writeObejct(Object obj);
缓冲输入流:
InputStream is = new FileInputStream(file_path);
BufferedInputStream bis = new BufferedInputStream(is);
缓冲输出流:
OutputStream os = new FileOutputStream(file_path);
BufferedOutputStream bos = new BufferedOutputStream(os);
3.Java中的过滤流(流的装配)有什么作用?请举例说明常用的过滤流。
FilterInputStream 和 FilterOutputStream分别重写了父类InputStream和OutputStream的所有方法,对其他输入输出流进行特殊处理。要使用过滤流,首先必须把它连接到某个输入输出节点流上,通常在构造方法的的参数中指定所要连接的节点流
4.什么是对象的序列化和反序列化?Java对此提供了哪些支持?
序列化:将对象数据直接存储到文件中.
反序列化:将java对象数据从文件中恢复.
5.Java的File类表示什么?有什么作用?
File类不仅指系统中的文件,也指目录,因为目录也是特殊的文件。
作用:表示一个文件对象,文件(或目录)路径名字的抽象表示。
6.Java对文件的读写分别提供了哪些支持?
getName():获取文件名称,返回String
canRead():boolean类型,是否可读
exist()/isFile():boolean类型,是否存在
length():long,文件长度,以字节为单位
getAbsolutePath():文件绝对路径,返回String
getParent():文件父路径,返回String
isDirectory():boolean 是否为目录
isHidden():boolean是否隐藏
lastModified():long,最后修改时间
delete():删除文件
createNewFile():通过实例创建文件