1.Java中流的分类有哪些?
流从流动方向上看:一般分为输入流和输出流
- 输入流:如System.in是一个InputStream类型输入流
- 输出流:如System.out 是一个PrintStream类型输出流
从读取类型上分:一般分为字节流和字符流
- 字节流:如System.in是一个InputStream类型字节流
- 字符流:如new InputStreamReader(System.in)是一个字符流对象
流从发生的源头:分为节点流和过滤流类
- 节点流:直接操作目标设备对应的流
- 如文件流,标准输入输出流
- 过滤流:继承带有关键字Filter的流
- 用于包装操作节点流,方便读写各种类型的数据
2.字节流InputStream和OutputStream的子类分别有哪些?请举例说明其使用场景。与其对应的字符流分别有哪些?
- 文件流 FileInputStream/FileOutputStream
- 通过指定文件路径的方式
- 字节数组流 ByteArrayInputStream/ByteArrayOutputStream
- 在字节数组和流之间搭建桥梁
- 管道流 PipedInputStream/PipedOutputStream
- 读取管道内容
- 对象流 ObjectInputStream/ObjectOutputStream
- 用来恢复被序列化的对象
- 过滤流 FilterInputStream/FilterOutputStream
- 在读写数据的同时还可以对数据进行特殊处理
- 缓冲流 BufferedInputStream/BufferedOutputStream
- 数据流 DataInputStream/DataOutputStream
- 打印流 PrintStream
3.字节流与字符流的转化是怎样的?Java对此提供了哪些支持?
输入字节流转为字符流需要用到inputstreamReader的构造方法:
- InputStreamReader(InputStream in)
- InputStreamReader ins = new InputStreamReader(System.in);
- InputStreamReader ins = new InputStreamReader(new FileInputStream(“test.txt”));
输出字符流转为字节流用到OutputStreamWriter或PrintWriter的构造方法:
- OutputStreamWriter(OutputStream out)
- OutputStreamWriter outs = new OutputStreamWriter(new FileOutputStream(“test.txt”));
- PrintWriter(OutputStream out)
4.Java中的过滤流(流的装配)有什么作用?请举例说明常用的过滤流。
- 过滤流BufferedInputStream和BufferedOutputStream, 缓存作用,用于装配文件磁盘、网络设备、终端等读写开销大的节点流,提高读写性能
- 过滤流BufferedReader的使用:用于缓存字符流,可以一行一行的读
- 过滤流: DataInputStream和DataOutputStream, 可从字节流中写入、读取Java基本数据类型,不依赖于机器的具体数据类型,方便存储和恢复数据
- PrintWriter的使用:可以向该字符流中写入Java基本数据类型,用于包装输出字符流类对象
5.什么是对象的序列化和反序列化?Java对此提供了哪些支持?
- 序列化(Serialization):将实现了Serializable接口的对象转换成一个字节序列,并能够在以后将这个字节序列完全恢复为原来的对象,后者又称反序列化。
- Java对序列化的支持:ObjectInputStream类和ObjectOutputStream
6.Java的File类表示什么?有什么作用?
- File类不仅指系统中的文件,也指目录,因为目录也是特殊的文件。
- 作用:表示一个文件对象,文件(或目录)路径名字的抽象表示。
7.Java对文件的读写分别提供了哪些支持?
- File 文件(或目录)路径名字的抽象表示
- FileDescriptor 代表一个打开文件的文件描述
- FileFilter & FilenameFilter 接口,列出满足条件的文件,用于:
- File.list(FilenameFilter fnf)
- File.listFiles(FileFilter ff)
- FileDialog.setFilenameFilter(FilenameFilter fnf)
- FileDialog是java.awt包中的类
- FileInputStream 以字节流的形式顺序读文件
- FileReader 以字符流的形式顺序读文件
- FileOutputStream 以字节流的形式顺序写文件
- FileWriter 以字符流的形式顺序写文件
- RandomAccessFile提供对文件的随机访问支持