JavaIO知识测试B卷.docx
《JavaIO知识测试B卷.docx》由会员分享,可在线阅读,更多相关《JavaIO知识测试B卷.docx(13页珍藏版)》请在冰豆网上搜索。
JavaIO知识测试B卷
集合部分测试题
考试宣言:
同学们,考试考多少分不是我们的目的!
排在班级多少的名次也不是我们的初衷!
我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了,那么不用怕,考完试后,导师讲解的时候你要注意听!
那时候学会了,记住了,也一样不影响你高薪就业!
本套题共40道不定项选择题,其中单选30道,多选10道。
单选2分/题,多选4分/题。
多选题不全对半分,全对满分。
1.所有异常和错误的父类是(D)
a)Throwable类
b)Error类
c)Exception类
d)RuntimeException类
2.下列关键字必须和try一起使用的有(CD)
a)final
b)finalize
c)finally
d)catch
3.实现下列哪个接口,可以启用序列化功能(B)
a)Runnable接口
b)Serializable接口
c)Comparable接口
d)Comparator接口
4.当方法遇到异常(编译时异常)又不知如何处理时,下列哪种说法是正确的(A)
a)捕获异常(try{…}catch{…})
b)抛出异常(throw异常对象)
c)声明异常(throws异常类型)
d)嵌套异常
5.如何自定义一个异常类(B)
a)让这个类继承Exception
b)让这个类继承RuntimeException
c)让这个类继承Comparator
d)让这个类继承Comparable
6.可以用来描述文件或者文件夹的类是(A)
a)File
b)FileStream
c)OutputStream
d)FileReader
7.File类中,创建多级目录,可以通过以下那个方法(D)1
a)create()
b)createNewFile()
c)mkdir()
d)mkdirs()
8.下列哪一个import命令可以使我们在程序中创建输入/输出流对象(B)1
a)import.*;
b)import.*;
c)import.*;
d)import.*;
9.下列关于Java中文件输入输出的说法正确的是(AB)1
a)在Java中,文件的输入输出功能是通过流来实现的
b)如果要把数据写入一个文件中,需要创建一个输出流对象
c)字符流在某些方面比如图片的处理,比字节流更方便
d)可以通过Readerr=newReader(“c:
\\”);创建一个输入流对象
10.获取指定目录下所有的文件,可以通过哪个方法实现:
()1
a)list()
b)getDir();
c)listFile()
d)listFiles()
11.下面用字符流能成功拷贝的文件有(C)
a)java基础自测题.doc
b)学生考试答案.xml
c)xlsx
12.看下面程序,加入里面有一个文字”a”,请问该程序输出结果是(C)
publicstaticvoiddemo1()throwsFileNotFoundException,IOException{
13.InputStreamis=newInputStream("");vi这个文件有20Gb的大小,复制该文件最快的方式是(B)
a)
FileInputStreamfis=newFileInputStream("双元.jpg");
FileOutputStreamfos=newFileOutputStream("");
intb;
while((b=())!
=-1){
(b);
}
();
();
b)
FileInputStreamfis=newFileInputStream("致青春.mp3");
FileOutputStreamfos=newFileOutputStream("");
byte[]arr=newbyte[()];
(arr);
(arr);
();
();
c)
FileInputStreamfis=newFileInputStream("");
FileOutputStreamfos=newFileOutputStream("");
byte[]arr=newbyte[1024];
intlen;
while((len=(arr))!
=-1){
(arr,0,len);
}
();
();
d)
FileInputStreamfis=newFileInputStream("");
FileOutputStreamfos=newFileOutputStream("");
byte[]arr=newbyte[1024*8];
intlen;
while((len=(arr))!
=-1){
(arr,0,len);
}
();
();
14.BufferedInputStream这个类是哪个设计模式的体现(B)!
a)单例设计模式
b)装饰设计模式
c)工厂设计模式
d)适配器模式
15.下面说法正确的是(D)!
a)OutputStream是个接口//抽象类
b)Writer是个接口//抽象类集合的顶层才是接口
c)BufferedOutputStream是FileOutputStream的父类
d)Reader是InputStreamReader的父类
16.下列关于JavaI/O中字符输入流Reader类中的read方法描述错误的是(A)!
a)read()方法的返回值类型为char类型
b)read()方法的返回值类型为int类型
c)read()方法的返回值如果为-1,表示到流的末尾
d)read(char[]cbuf)方法表示将读到的多个字符存入字符数组cbuf中
17.下列是哪些方法是可以让FileWriter类的对象调用的(ABCD)
a)write(char[]cbuf)写入字符数组
b)write(char[] cbuf,int off,int len)写入字符数组的某一部分
c)write(intc)写入单个字符
d)write(Stringstr)写入字符串
18.假设存在文件,内容为”大家好”,以下代码运行的结果为(A)
publicclassTest{
publicstaticvoidmain(String[]args)throwsIOException{
FileReaderfr=newFileReader("");
FileWriterfw=newFileWriter("");
intc;
while((c=())!
=-1){
();//没有写东西应该把C传进去
}
();
();
}
}
a)编译报错
b)程序正常运行,文件中的内容为”大家好”
c)程序正常运行,但是没有生成文件
d)程序正常运行,但是文件中是乱码
19.FileWriter类直接继承哪个类(A)!
a)OutputStreamWriter
b)Writer
c)BufferedWriter
d)InputStreamReader
20.关于自定义字符数组拷贝文件的说法错误的是(AC)
a)自定义的数组越大越好//不能超过内存,要看拷贝内存的大小
b)自定义的数组既不能太大,也不能太小
c)可以使用FileReader类的available()方法的返回值作为数组的大小//这个类里没有这个方法
d)建议定义为1024的整数倍,但不能太大,防止内存溢出
21.假设文件中存了2000个汉字,下列程序运行后输出的结果是(A)
publicclassTest{
publicstaticvoidmain(String[]args)throwsIOException{
FileReaderfr=newFileReader("");
FileWriterfw=newFileWriter("");
intcount=0;
char[]arr=newchar[1024];
intlen;
while((len=(arr))!
=-1){
count++;
(arr,0,len);
}
();
();
}
}
a)1
b)2
c)3
d)4
22.下面哪个是字符流通向字节流的桥梁(B)!
a)InputStreamReader
b)OutputStreamWriter
c)FileReader
d)BufferedReader
23.BufferedReader读取一行时,判断该行是否结束的标志是什么(D)
a)\t
b)-2
c)-1
d)\r\n
24.缓冲流是否需要关闭(B)
a)否
b)是
c)关不关都可以
d)以上答案都不对
25.以下代码运行后输出的结果是(A)
publicclassTest{
publicstaticvoidmain(String[]args)throwsIOException{
}
publicstaticintfun(intnum){
if(num==1){
return1;
}else{
returnnum*fun(num-1);
}
}
}
a)120
b)720
c)24
d)6
26.以下代码运行后输出的结果是(C)
publicclassDemo8_Digui{
publicstaticvoidmain(String[]args){
}
publicstaticintfun(intnum){
if(num==1||num==2){
return1;
}else{
returnfun(num-2)+fun(num-1);
}
}
}
a)34
b)13
c)21
d)5
27.为了提高读写性能,用下面的哪些流(ABCD)
a)BufferedInputStream
b)BufferedOutputStream
c)BufferedReader
d)BufferedWriter
28.下列关于JavaI/O中哪个流可以将多个文件中的内容合并到一个文件中(序列流)(C)
a)SequenceOutputStream
b)InputStreamReader
c)SequenceInputStream
d)OutputStreamWriter
29.下面的哪个流表示内存输出流(A)
a)ByteArrayOutputStream
b)ByteArrayInputStream
c)ObjectInputStream
d)ObjectOutputStream
30.下面说法正确的是(A)
a)可以通过ByteArrayOutputStream和ByteArrayInputStream实现文件的复制
b)不可以通过ByteArrayOutputStream和ByteArrayInputStream实现文件的复制
c)用ByteArrayOutputStream和ByteArrayInputStream实现文件的复制,会出现乱码//不会
d)用ByteArrayOutputStream可以解决字节流读取中文到程序中出现的乱码问题
31.下面说法错误的是(D)
a)ByteArrayOutputStream内部封装了字节数组
b)newByteArrayOutputStream()利用空参构造创建对象时,内部的数组的大小为32
c)toByteArray()以字节数组的形式返回数据
d)以上说法都不对
32.关于对象操作流的描述正确的是(AD)
a)ObjectOutputStream流是将对象以Object类型写入到文件中
b)ObjectOutputStream流是将内容写入到Object对象中
c)ObjectInputStream流是读取Object对象里的内容
d)ObjectInputStream是从文件中读取一个对象出来,读出来是Object类型的,需要进行强制类型转换
33.ObjectOputStream类中的哪个方法可以将对象写入到文件中(C)
a)write(Objectobj)
b)append(Objectobj)
c)writeObject(Objectobj)
d)objectWrite(Objectobj)
34.下列选项中哪个不属于I/O流(C)
a)FileWriter
b)FileReader
c)Properties
d)PrintStream
35.下列说法不正确的是(D)
a)Properties类表示了一个持久的属性集
b)Properties可保存在流中或从流中加载//store方法
c)属性列表中每个键及其对应值都是一个字符串
d)以上说法都不对
36.以下代码运行后输出的结果是(C)
publicclassTest{
publicstaticvoidmain(String[]args)throwsIOException{
Propertiesprop=newProperties();
("name","张三");
("tel","");
Enumerationen=(Enumeration)();
while()){
Stringkey=();
Stringvalue=(key);
+":
");
}
}
}
a)name:
tel
b)tel:
name
c)张三:
:
d):
张三
37.关于Properties类中的load和store方法说法正确的是(AB)
a)load方法从流中读取属性列表,键值对,加载到Properties对象中
b)store方法将Properties对象中的键值对,写入到流中
c)load方法将Properties(Properties)对象中的内容加载到文件中//反了
d)以上说法都不对