Java语言程序设计教程(第二版)翁 凯 肖少拥 王行言-第11章--Java的输入输出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第11章Java的输入输出
思考题与习题
一、概念思考题
1.简述流的概念与特点。
解答:
Java的流是一个比文件所包含范围更广的概念。流是一个可被顺序访问的数据序列,是对计算机输入数据和输出数据的抽象,可以想象成数据像水一样流动,受到控制。
Java流的特点:数据可以是未加工的原始二进制数据,也可以经一定编码处理符合某种格式规定的特定数据,java中的数据流有字节流和字符流之分。
2.说明过滤流的概念及作用。
解答:
过滤流(包装流):使用节点流作为输入或输出。过滤流是使用一个已经存在的输入流或者输出流链接创建的。
过滤流的主要作用:在输入输出数据的同时能对所传输的数据做指定类型或格式的转换,即可实现对二进制字节数据的理解和编码转换。
3.说明stream家族与reader/writer家族之间的区别。
解答:
stream家族操作的是字节数据,reader/writer家族操作的是字符数据。
4.描述java.io包中输入/输出流的类家族关系。
解答:
以字节为导向的stream
基类是InputStream和OutputSteam
stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的stream(包括Input和Outputstream)都包括两种类型:
a)InputStream:
1)ByteArrayImputStream:把内存中的一个缓冲区作为InputStream使用2)StringButffetInputStream:把一个String对象作为InputStream 3)FilenputStream:把一个文件作为InputStream,实现对文件的读取操作4)PipedmputStream:实现了pipe的概念,主要在线程中使用
b)OutStream
1)ByteArrayOutputStream:把信息存入内存中的一个缓冲区中
2)FileCutputStream:把信息存入文件中
3)PipedOutputStream:实现了pipe的概念,主要在线程中使用
以Unicode字符为导向的stream包括下面几种类型:
a)InputStream
1)CharArtayReader:与ByteArrayInputStream对应
2)StringReader:与StringBufferInputStream对应
3)FileReader:与FileImnputStream对应
4)PlpedReader:与PipedInputStream对应
b)OutStream
1)CharArrayWrite:与ByteArrayOutputStream对应
2)StringWrite:无与之对应的以字节为导向的stream
3)FileWrite:与FileOutputStream对应
4)PipedWrite:与PipedOutputstream对应
以字符为导向的stream基本上对有与之相对应的以字节为导向的stream。两个对应类实现的功能相同,只是在操作时的导向不同。
二、选择题
1.InputStream和OutputStream读写的数据是()。
A.8
B.16
C.32
D.不确定
解答:
D。
2.以下哪一个类的对象可以是DataInputStream的构造函数参数?()
A.File
B.String
C.FileInputStream
D.FileOutputStream 解答:
C。
3.使用DataInputStream和DataOutputStream的目的是:()
A.识别EOF
B.格式化输入输出
C.读写文本文件
D.读写二进制数据文件
解答:
D。
4.字节流与字符流的区别是()。
A.每次读入的字节数不同
B.前者有缓冲,后者没有
C.没有区别,可以互换使用
D.前者是字节读写,后者是块读写
解答:
D。
三、编程题
1.给第5章的编程题的第5题加上文件保存数据的功能,将用户输入的选课信息保存在文件中,在设计另一个程序,能从文件中读出这些数据,并打印输出。解答:
2.设计一个程序,用户输入一个文件名,打开该文本文件,并统计输出26个英文字母出现的次数。
解答:
3. 设计一个程序,用户输入一个文件名,二进制打开该文件,并统计输出其中每个可能的字节值出现的次数。
解答: