文章目录

  • 一、填空题
  • 二、判断题
  • 三、选择题
  • 四、简答题
  • 五、编程题
  • 六、原题及其解析

一、填空题

1、   字节流、字符流
2、  Channel、Buffer
3、  InputStreamReader、OutputStreamWriter
4、  Buffer、Channel、Selector
5、RandomAccesseFile

二、判断题

1、   错  2、对   3、对  4、对  5、错

三、选择题

1、AB   2、C   3、AB    4、A  5、A

四、简答题

1、Java程序通过I/O流来完成输入和输出,流是输入或输出信息的抽象。流通过Java的输入/输出系统与外设连接进行数据通信。流是抽象的对象,具体实现代码在java.io包中。

2、字节流的两个基类是InputStream和OutputStream,字符流的两个基类是Reader和Writer,它们都是Object类的直接子类,字节流是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字节的字符流类。

3、Java中的NIO是为替代传统标准的I/O而出现的。与标准的IO相比,Java NIO提供了一种与I/O不同的工作方式。NIO采用内存映射文件的方式来处理输入/输出,它将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了。
在标准IO中,使用的是字节流和字符流,而在NIO中,使用的是通道(Channel)和缓冲区(Buffer)。数据总是从通道读入缓冲区,或从缓冲区写入通道。
NIO主要有三大核心部分:Buffer、Channel和Selector。其中Buffer可以被看成是一个容器,其本质是一个数组缓冲区,读入或写出到Channel中的所有对象都会先放在Buffer中;Channel是对传统的输入/输出的模拟,在NIO中,所有的数据都需要通过通道流的形式传输;Selector(选择器)用于监听多个通道的事件(例如:连接打开、数据到达等),主要用于多线程处理。

五、编程题

1.import java.io.*;
public class Test01 {public static void main(String[] args) throws Exception {// 字节流拷贝FileInputStream in = new FileInputStream("E:/src.txt");FileOutputStream out = new FileOutputStream("E:/des1.txt");byte[] buf = new byte[1024];int len;while ((len = in.read(buf)) != -1) {out.write(buf, 0, len);}in.close();out.close();// 字符流拷贝BufferedReader bf = new BufferedReader(new FileReader("E:/src.txt"));BufferedWriter bw = new BufferedWriter(new FileWriter("E:/des2.txt"));String str;while ((str = bf.readLine()) != null) {bw.write(str);bw.newLine();}bf.close();bw.close();}
}
2.import java.io.*;
public class Test02 {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String password = "";boolean b = false;for (int i = 0; i < 5; i++) {System.out.println("请输入密码:");password = br.readLine();if (password.equals("123456")) {System.out.println("恭喜你进入游戏");b = true;break;}}if (!b) {System.out.println("密码错误,游戏结束");System.exit(0);}}
}

六、原题及其解析

一.填空题
1.Java中的I/O流,按照传输数据不同,可分为( )和( )。字节流 字符流

2.在Buffer和Channel交互时,数据会从( )读取到( )中,或从Buffer写入到Channel中。Channel Buffer

3.用于将字节流转换为字符流的是( )和( )。InputStreamReader OutputStreamWriter

4.NIO主要有三大核心部分:( )、( )和( )。Buffer Channel Selector

5.Java中提供了一个类( ),它不但具有读写文件的功能,而且可以随机地从文件的任何位置开始执行读写数据的操作。RandomAccesseFile

二.判断题
1.如果一个File表示目录下有文件或者子目录,调用delete( )方法也可以将其删除。()错×

2.对象序列化是指讲一个Java对象转换成一个I/O流中字节序列的过程。()对√

3.Channel是一个接口对象,它类似于传统的流对象。()对√

4.InputStream类的close( )方法是用于关闭流并且释放流所占的系统资源。()对√

5.BufferedInputStream和BufferedOutputStream不是字节缓冲流。()错×

三.选择题
1.下面选项中,哪些是标准输入输出流?(多选)( ) AB
A.System.In B.System.Out C.InputStream D.OutputStream

2.File类中以字符串形式返回文件绝对路径的方法是哪一项?( ) C
A.getParent( ) B.getName( )
C.getAbsolutePath( ) D.getPath

3.以下创建RandomAccessFile类实例对象的代码,哪些是正确的?(多选)( ) AB
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 RandomAccessFile(“D:\itcast\dirl\test.java”,“wr”)

4.以下选项中,哪个流使用了缓冲区技术?( ) A
A.BufferOutputStream B.FileInputStream
C.DataOutputStream D.FileReader

5.以下选项中,关于Java NIO中Buffer类的常用说法正确的是哪一项?( )B
A.clear( )方法会清除缓冲区数据,并将position设置为0,limit设置为capacity
B.flip( )方法先将limit设置为当前position位置,然后再将position设置为0
C.mark( )方法用于设置Buffer的标记(mark),只能在0与limit之间做标记
D.rewind( )方法将position设置为0,并设置mark标记

四.简答题
1.简述I/O流的概念。
Java程序通过I/O流来完成输入和输出,流是输入或输出信息的抽象。流通过Java的输入/输出系统与外设连接进行数据通信。流是抽象的对象,具体实现代码在java.io包中。

2.简述字节流、字符流的区别。
字节流的两个基类是InputStream和OutputStream,字符流的两个基类是Reader和Writer,它们都是Object类的直接子类,字节流是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字节的字符流类。

3.简要说明什么是NIO。
Java中的NIO是为替代传统标准的I/O而出现的。与标准的IO相比,Java NIO提供了一种与I/O不同的工作方式。NIO采用内存映射文件的方式来处理输入/输出,它将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样来访问文件了。
在标准IO中,使用的是字节流和字符流,而在NIO中,使用的是通道(Channel)和缓冲区(Buffer)。数据总是从通道读入缓冲区,或从缓冲区写入通道。
NIO主要有三大核心部分:Buffer、Channel和Selector。其中Buffer可以被看成是一个容器,其本质是一个数组缓冲区,读入或写出到Channel中的所有对象都会先放在Buffer中;Channel是对传统的输入/输出的模拟,在NIO中,所有的数据都需要通过通道流的形式传输;Selector(选择器)用于监听多个通道的事件(例如:连接打开、数据到达等),主要用于多线程处理。

五.编程题
1.编写一个程序,分别使用字节流和字符流拷贝一个文本文件。要求如下:
(1)使用FileInputStream、FileOutputStream和FileReader、FileWriter分别进行拷贝。
(2)使用字节流拷贝时,定义一个1024长度的字节数组作为缓冲区,使用字符流拷贝,使用BufferedReader和BufferedWriter包装流进行包装。

import java.io.*;
public class Test01 {public static void main(String[] args) throws Exception {// 字节流拷贝FileInputStream in = new FileInputStream("E:/src.txt");FileOutputStream out = new FileOutputStream("E:/des1.txt");byte[] buf = new byte[1024];int len;while ((len = in.read(buf)) != -1) {out.write(buf, 0, len);}in.close();out.close();// 字符流拷贝BufferedReader bf = new BufferedReader(new FileReader("E:/src.txt"));BufferedWriter bw = new BufferedWriter(new FileWriter("E:/des2.txt"));String str;while ((str = bf.readLine()) != null) {bw.write(str);bw.newLine();}bf.close();bw.close();}
}

2.某人在玩游戏的时候输入密码123456后成功进入游戏(输错5次则被强行退出),要求用程序实现密码验证的过程。要求如下:
(1)使用System.in包装为字符流读取键盘输入。
(2)BufferedReader对字符流进行包装。调用BufferedReader的readLine( )方法每次读取一行。
(3)在for循环中判断输入的密码是否为123456,如果是则打印"恭喜你进入游戏",并跳出循环,否则继续循环读取键盘输入。
(4)当循环完毕,密码还不正确,则打印"密码错误,结束游戏",并调用System.exit(0)方法结束程序。

import java.io.*;
public class Test02 {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String password = "";boolean b = false;for (int i = 0; i < 5; i++) {System.out.println("请输入密码:");password = br.readLine();if (password.equals("123456")) {System.out.println("恭喜你进入游戏");b = true;break;}}if (!b) {System.out.println("密码错误,游戏结束");System.exit(0);}}
}

《Java基础入门第2版》--黑马程序员 课后答案及其详解 第7章 I/O流相关推荐

  1. 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第6章 集合

    文章目录 一.填空题 二.判断题 三.选择题 四.简答题 五.编程题 六.原题及其解析 一.填空题 1.Comparator 2.hashNext().next() 3.键.值 4.ArrayList ...

  2. 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第5章 Java中的常用类

    文章目录 一.填空题 二.判断题 三.选择题 四.简答题 五.编程题 六.原题及其解析 一.填空题 1. String.StringBuffer 2. Date.Calendar.DateFormat ...

  3. 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第3章 面向对象(上)

    文章目录 一.填空题 二.判断题 三.选择题 四.简答题 五.编程题 六.原题及其解析 一.填空题 1.封装.继承.多态 2.this 3.private.default.protected.publ ...

  4. 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第10章 多线程

    文章目录 一.填空题 二.判断题 三.选择题 四.简答题 五.编程题 六.原题及其解析 一.填空题 1.Thread.Runnable.Callable 2.synchronized.this 3.N ...

  5. 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第4章 面向对象(下)

    文章目录 一.填空题 二.判断题 三.选择题 四.简答题 五.编程题 六.原题及其解析 一.填空题 1.方法,抽象类2.子类.父类.基类3.final4.Object5.参数列表."-> ...

  6. Java基础入门第三版黑马课后习题(编程部分)

    第 1 章 Java 开发入门 第 2 章 Java 编程基础 1. 编写程序,计算1+3+-+99的值,要求如下: (1)使用循环语句实现1~99的遍历 (2)在遍历过程中,通过条件判断当前的数是否 ...

  7. 【传智播客】Javaweb程序设计任务教程 黑马程序员 课后答案【合集】

    [传智播客]Javaweb程序设计任务教程 黑马程序员 第一章 课后答案 [传智播客]Javaweb程序设计任务教程 黑马程序员 第二章 课后答案 [传智播客]Javaweb程序设计任务教程 黑马程序 ...

  8. 软件测试黑马程序员课后答案_软件测试课后习题答案

    软件测试课后习题答案 [篇一:软件测试基础习题及答案] > 软件测试是一个过程或者一系列过程,用来确认计算和代码完成了 其应该完成的功能,并且不执行其不应该有的操作. 2 .软件测试的目标是什么 ...

  9. 软件测试黑马程序员课后答案_软件测试教程课后答案

    软件测试教程课后答案 [篇一:软件测试习题答案] > 一.简答题和应用题: 1 测试人员面试题 01 .为什么要在一个团队中开展软件测试工作? 因为没有经过测试的软件很难在发布之前知道该软件的质 ...

最新文章

  1. hdu 2897 巴什博弈变形
  2. linux ubuntu ping命令安装
  3. linux ping 连续,在SUN Solaris下连续ping的使用
  4. 帝国cms商城微信小程序之后台sku多规格的开发说明
  5. 解决无法连接到远程SqlServer 2005 Express服务器的问题
  6. (31)驱动开发环境配置(VS2010+WDK7600)
  7. 修改centos7容器的时间和宿主机时间一致
  8. centos7 设置ip地址
  9. [蓝桥杯][算法提高VIP]断案-枚举
  10. c++ 不插入重复元素但也不排序_面试时写不出排序算法?看这篇就够了
  11. SpringBoot2.x整合Redis 分布式集群_01
  12. (Ruby)Ruby中区块用的一些潜藏关键字
  13. MYSQL读写性能测试
  14. 账务实时交易系统设计思考
  15. 抓包常用工具使用简介
  16. 服务器处理蜘蛛抓取网页的过程,搜索引擎蜘蛛抓取页面过程图解
  17. 关于Ubuntu与Debian的关系,了解!
  18. Codeforces Round #666(Div. 2)E. Monster Invaders(DP)
  19. 直播客的张鑫焱的新创意
  20. 凹凸世界手游服务器维修,凹凸世界手游进不去怎么办 试试这几个解决方法

热门文章

  1. 关于视频--源自伊甸园论坛
  2. Javascrpit特效之打字机效果
  3. CTSV当中Camera FOV的计算方法
  4. 2017郑大计算机考研大纲,郑州大学2017年考研考试大纲
  5. 共建手机页游生态圈 腾讯助力Cocos秋季峰会
  6. AV1 码流分析器的搭建
  7. JNI学习笔记——(二)Native操作Java对象
  8. 在Hadoop环境里面统计西游记文章的词组(hdfs实验)
  9. 【酷熊科技】工作积累 ----------- Unity3D grid 显示问题
  10. nginx基于docker安装及主页修改