1、流按照方向来分,分为几种?相对于什么而言?按照流传输数据的类型来分,分为几种?
- 方向
- 输入流(input)
- 输出流(output)
- 类型
- 字节流(InputStream/OutputSteam)
- 字符流(Reader/Writer)
- 功能(数据处理方式)
- 节点流(所有基础流)
- 缓冲流(Buffered开头的)
2、流相关的操作类在哪个包中?字节流和字符流的父类是什么?
操作类在java.io
包下,字节输入流的父类是InputStream,字节输出流的父类是OutputSteam,字符输入流的父类是Reader,字符输出流的父类是Writer。
3、为什么字节流和字符流的父类是抽象类?
字节流和字符流写入和读取的方式都不一样,所以需要子类重写。
4、字节流方法中,read()和read(byte[] b)返回类型,各自是什么含义?
1.read()
从输入流中读取数据的下一个字节,返回0到255范围内的int字节值,判断是否读取完毕。
2.read(byte[] b)
从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
5、流操作的步骤是什么?
1.创建目标对象。
2.创建IO流对象。
3.执行具体的IO操作。
4.释放资源。
6、当做流操作时,如果文件不存在,会有什么样的结果?
发生FileNotFoundException异常。
7、操作流时,如果流不关闭会出现什么情况?
1.占用资源
2.内存溢出
8、如何判断一个文件是否存在?如何创建一个目录?如何知道一个目录中有多少文件?
1.判断一个文件是否存在调用exists()
方法。
2.创建目录调用mkdirs()
方法。
3.判断一个目录中有多少文件调用listFiles()
方法,其length长度为文件数量。