<p align="center">IO流作业
<p class="1">一、??? 填空题
- Java IO流可以分为和处理流两大类,其中前者处于IO操作的第一线,所有操作必须通过他们进行。
- 输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数据,
- read方法从输入流中顺序读取源中的单个字节数据,该方法返回字节值(0-255之间的一个整数),如果到达源的末尾,该方法返回。
- Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出_____System.err_______________。
- Java IO体系中,____ObjectInputStream________________是字节输入流,不仅提供了存取所有Java基础类型数据(如:int,double 等)和String的方法,也提供了提供存取对象的方法。
- Java IO体系中,__________________是字节输出流,提供了可以存取所有Java基础类型数据(如:int,double 等)和String的方法,但没有提供存取对象的方法。
- ___序列化 _________是指将Java对象转换成字节序列,从而可以保存到磁盘上,也可以在网络上传输,使得不同的计算机可以共享对象。
二、??? 选择题
?
1.
使用Java IO流实现对文本文件的读写过程中,需要处理下列(?? B )异常。(选择一项)
A
ClassNotFoundException
B.
C.
SQLException
D.
RemoteException
?
2.
在Java的IO操作中,(? D? )方法可以用来刷新流的缓冲。(选择两项)
A
void release()
B.
C.
void remove()
D.
void flush()
?
3.
在Java中,下列关于读写文件的描述错误的是(? B? )。(选择一项)
A
Reader类的read()方法用来从源中读取一个字符的数据
B.
C.
Writer类的write(int n)方法用来向输出流写入单个字符
D.
Writer类的write(String str)方法用来向输出流写入一个字符串
?
?
?
4.
阅读下列文件定入的Java代码,共有(?? C? )处错误。(选择一项)
import java.io.*;
public class TestIO {
public static void main(String []args){
null;??????? //1
try{
new FileWriter("c:mytext.txt");? //2
catch(IOException e){?? //4
finally{
A
B.
C.
D.
?
5.
分析如下Java代码,有标注的四行代码中,有错误的是第(? D? )处。(选择一项)
?
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[ ] args) {
null;
try {
new FileWriter("c:hello.txt"); // 1
catch (IOException e) {
finally {
A
1
B.
C.
3
D.
4
?
6.
以下选项中关于如下代码的说法正确的是( AD?? )。(选择二项)
?
public class TestBuffered {
public static void main(String[] args) throws IOException {
new BufferedReader(new FileReader("d:/bjsxt1.txt"));
new BufferedWriter(new FileWriter("d:/bjsxt2.txt"));
while(str !=null){
A.
B.
C.
D.
<table style="width: 714px" border="0" cellspacing="0" cellpadding="0"> |
<tr>
<td valign="top" width="53">
<p align="left">7.
</td>
<td colspan="2" valign="top" width="661">
<p align="left">InputStreamReader是转换流,可以将字节流转换成字符流,是字符流与字节流之间的桥梁。它的实现使用的设计模式是( C?? )。(选择一项)
</td>
</tr>
<tr>
<td valign="top" width="53">
<p align="left">?
</td>
<td valign="top" width="53">
<p align="left">?
</td>
<td valign="top" width="607">
<p align="left">?
</td>
</tr>
<tr>
<td valign="top" width="53">
<p align="left">?
</td>
<td valign="top" width="53">
<p align="left">A.
</td>
<td valign="top" width="607">
<p align="left">工厂模式
</td>
</tr>
<tr>
<td valign="top" width="53">
<p align="left">?
</td>
<td valign="top" width="53">
<p align="left">B.
</td>
<td valign="top" width="607">
<p align="left">装饰模式
</td>
</tr>
<tr>
<td valign="top" width="53">
<p align="left">?
</td>
<td valign="top" width="53">
<p align="left">C.
</td>
<td valign="top" width="607">
<p align="left">适配器模式
</td>
</tr>
<tr>
<td valign="top" width="53">
<p align="left">?
</td>
<td valign="top" width="53">
<p align="left">D.
</td>
<td valign="top" width="607">
<p align="left">代理模式
</td>
</tr>
三、??? 判断题
- 假设文件”a.txt”的长度为100字节,那么当正常运行语句”OutputStream f=new FileOutputStream(new File(“a.txt”));”之后,文件”a.txt”的长度变为0字节。( T?? )
- ByteArrayInutStream和ByteArrayOutputStream对内存中的字节数组进行读写操作,属于字节流,属于处理流而不是节点流。 (?? F )
- 实现Serializable接口的可以被序列化和反序列化。该接口中没有定义抽象方法,也没有定义常量。(?? T )
- 序列化是指将字节序列转换成Java对象,只有实现了Serializable接口的类的对象才可以被序列化。(??? F)
四、??? 简答题
- 输入流和输出流的联系和区别,字符流和字节流的联系和区别
输入流是得到数据,输出流是输出数据。
字符流和字节流是流的一种划分,按处理照流的数据单位进行的划分。
两类都分为输入和输出操作。
在字节流中输出数据主要是使用OutputStream完成,输入使InputStream
在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成
- 节点流和处理流的联系和区别
节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader
???处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader。处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。?
- 列举常用的字节输入流和字节输出流并说明其特点,至少5对。
FileInputStream? 从文件系统中的某个文件中获得输入字节。
ByteArrayInputStream? 包含一个内部缓冲区,该缓冲区包含从流中读取
的字节。
FilterInputStream? 包含其他一些输入流,它将这些流用作其基本数据
源,它可以直接传输数据或提供一些额外的功能。
ObjectInputStream? 对以前使用 ObjectOutputStream 写入的基本数据
和对象进行反序列化。?
StringBufferInputStream? 此类允许应用程序创建输入流,在该流中读
取的字节由字符串内容提供。
- 说明缓冲流的优点和原理
不带缓冲的流的工作原理:它读取到一个字节/字符,就向用户指定的路径
写出去,读一个写一个,所以就慢了。
带缓冲的流的工作原理:读取到一
个字节/字符,先不输出,等凑足了缓冲的最大容量后一次性写出去,从而
提高了工作效率
优点:减少对硬盘的读取次数,降低对硬盘的损耗。
- 序列化的定义、实现和注意事项
1 String s="北京尚学堂bjsxt"
[] by =
String str= String(by,0 2 3 4. 复制文件夹d:/sxtjava下面所有文件和子文件夹内容到d:/
1 2. 假设从入学开始所有书写的Java类代码都在d:/ 提示:其实就是获取d:/ 3. 由控制台按照固定格式输入学生信息,包括学号,姓名,年龄信息,当输入的内容为exit退出;将输入的学生信息分别封装到一个Student对象中,再将每个Student对象加入到一个集合中,要求集合中的元素按照年龄大小正序排序;最后遍历集合,将集合中学生信息写入到记事本,每个学生数据占单独一行。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!