Java 习题七
一 、填空题
-
Java 中的 I/O 流 ,按照传输数据不同, 可分为 和
-
在 Buffer 与 Channel 交互时 ,数据会从 读取到 中,或从 Buffer 写
入到 Channel 中 。 -
用于将字节流转换为字符流的是 和
-
NIO 主要有三大核心部分: 、 和
-
Java 中提供了一个类 ,它不但具有读写文件的功能,而且可以随机地
从文 件的任何位置开始执行读写数据的操作 。
二、判断题
1 、如果一个 File 表示目录下有文件或者子目录,调用 delete( ) 方法
. 也可以将其删除。 ()
2 、 对象序列化是指将一个 Java 对象转换成一个 I/O 流中字节序列的
过程。( )
3 、 Channel 是一个接口对象, 它类似于传统的流对象。( )
4 、 InputStream 类的 closeO 方法是用于关闭流并且释放流所占的系 统资源。( )
5 、 BufferedlnputStream 和 BufferedOutputStream 不是字节缓冲流 。
( )
三 、选择题
1, 下面选项中, 哪些是标准输入输出流? ( 多选 )( )
A. System. In B. System. Out C. InputStream D. OutputStream -
File 类中以字符串形式返回文件绝对路径的方法是哪一项? ( )
A. getParentO B. getName()
C. getAbsolutePath() D. getPathO
3. 以下创建 RandomAccessFile 类实例对象的代码 , 哪些是正确的?(多 选)( )
A. new RandomAccessFile(new File(“D:\itcast\dirl\test. java”) , “rw”);
B. new RandomAccessFile(“D:\itcast\dirl\test. java” , “r”);
C. new RandomAccessFile(“D:\itcast\dirl\test. java”);
D. new RandomAccessFileC"Ds\itcast\dirl\test. java" , “wr”);
4. 以下选项中, 哪个流中使用了缓冲区技术?( )
A. BuffereOutputStream B. FilelnputStream
C. DataOutputStream D. FileReader
5. 以下选项中, 关于 Java NI。 中 Buffer 类的常用说法正确的是哪一项? ( )
A. clearO 方法会清除缓冲区数据 , 并将 position 设置为 0,limit 设置为 capacity
B. flipO 方法先将 limit 设置为当前 position 位置,然后再将 position 设置为 。
C. markO 方法用于设置 Buffer 的标记(mark),只能在 0 与 limit 之间做标记
D. rewind()方法将 position 设置为 0,并设置 mark 标记
四、 简答题
- 简述 I/O 流的概念 。
- 简述字节流、字符流的区别 。
- 简要说明什么是 NI。 。
五、 编程题 - 编写一个程序,分别使用字节流和字符流拷贝一个文本文件。要求如下:
(1) 使用 FilelnputStream,FileOutputStream 和 FileReader、 FileWriter 分别
进行拷贝 。
(2) 使用字节流拷贝时,定义一个 1024 长度的字节数组作为缓冲区,使用字 符流拷贝, 使用 BufferedReader 和 Buffered Writer 包装流进行包装 。 - 某人在玩游戏的时候输入密码 123456 后成功进入游戏(输错 5 次则被强 行退出), 要求用程序实现密码验证的过程。要求如下:
(1) 使用 Sysytem. in 包装为字符流读取键盘输入 。
(2) BufferedReader 对字符流进行包装。 调用 BufferedReader 的 readLine() 方法每次 读取一行 。
(3) 在 for 循环中判断输入的密码是否为 123456,如果是则打印“恭喜你进入 游戏” ,并 跳出循环, 否则继续循环读取键盘输入 。
(4) 当循环完毕,密码还不正确,则打印“密码错误,结束游戏”,并调用 System. exit(0) 方法结束程序 。