文档库 最新最全的文档下载
当前位置:文档库 › 黑马程序员Java IO知识测试 C卷

黑马程序员Java IO知识测试 C卷

集合部分测试题

考试宣言:

同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!

我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!

本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。

1.所有异常的父类是()A

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.当方法遇到异常(编译时异常)又不知如何处理时,下列哪种说法是正确的()C

a)捕获异常(try{…}catch{…})

b)抛出异常(throw 异常对象)

c)声明异常(throws 异常类型)

d)嵌套异常

5.如何自定义一个异常类()AB

a)让这个类继承Exception

b)让这个类继承RuntimeException

c)让这个类继承Comparator

d)让这个类继承Comparable

6.可以用来操作路径的类是()a

a)File

b)FileStream

c)OutputStream

d)FileReader

7.File类中,创建多级目录,可以通过以下那个方法()d

a)create()

b)createNewFile()

c)mkdir()

d)mkdirs()

8.下列哪一个import命令可以使我们在程序中创建输入/输出流对象()B

a)import java.sql.*;

b)import java.io.*;

c)import https://www.wendangku.net/doc/d510683993.html,.*;

d)import java.util.*;

9.下列关于Java中文件输入输出的说法正确的是()A

a)在Java中,文件的输入输出功能是通过流来实现的

b)如果要把数据写入一个文件中,需要创建一个输入流对象

c)字符流在某些方面比如图片的处理,比字节流更方便x

d)可以通过Reader r = new Reader(“c:\\java.txt”);创建一个输入流对

10.获取指定目录下所有的文件,可以通过哪个方法实现:()D

a)list()

b)getDir();

c)listFile()

d)listFiles()

11.下面用字符流能成功拷贝的文件有()BC

a)java基础自测题.doc

b)学生考试答案.xml

c)Student.java

d)学生信息表. xlsx

12.看下面程序,加入xxx.txt里面有一个文字”a”,请问该程序输出结果是()D

public static void demo1() throws FileNotFoundException, IOException {

InputStream is = new InputStream("xxx.txt");

int x = is.read();

System.out.println(x);

}

a) A

b) a

c)97

d)编译报错

13.如果我想保留a.txt中原有的内容,在后面追加写入数据,下面创建输出流对象写法正确

的是()B

a)FileOutputStream fos = new FileOutputStream(“a.txt”);

b)FileOutputStream fos = new FileOutputStream(“a.txt”,true);

c)BufferedOutputStream bos = new

BufferedOutputStream(“a.txt”,true);

d)OutputStreamWriter osw = new OutputStreamWriter(new

InputStream(“a.txt”,true),”gbk”);

14.下面关于字节流说法不正确的是()BC

a)字节流拷贝文件时一次读取一个字节

b)字节流拷贝文件时一次读取两个字节

c)字节流使用完后需要关,内存输出流使用完后也必须要关闭

d)FileOutputStream没有缓冲区,而FileWriter有缓冲区

15.判断一个文件的大小我们可以使用哪个方法(AD)

a)File类的length()方法

b)File类的available()方法

c)FileInputStream类的length()方法

d)FileInputStream类的available()方法

16.已知海贼王全集.avi 这个文件有20Gb 的大小,复制该文件最快的方式是()D

a)

FileInputStream fis = new FileInputStream("双元.jpg");

FileOutputStream fos = new FileOutputStream("copy.jpg");

int b;

while((b = fis.read()) != -1) {

fos.write(b);

}

fis.close();

fos.close();

b)

FileInputStream fis = new FileInputStream("致青春.mp3");

FileOutputStream fos = new FileOutputStream("copy.mp3");

byte[] arr = new byte[fis.available()];

fis.read(arr);

fos.write(arr);

fis.close();

fos.close();

c)

FileInputStream fis = new FileInputStream("xxx.txt");

FileOutputStream fos = new FileOutputStream("yyy.txt");

byte[] arr = new byte[1024];

int len;

while((len = fis.read(arr)) != -1) {

fos.write(arr,0,len);

}

fis.close();

fos.close();

d)

FileInputStream fis = new FileInputStream("xxx.txt");

FileOutputStream fos = new FileOutputStream("yyy.txt");

byte[] arr = new byte[1024*8];

int len;

while((len = fis.read(arr)) != -1) {

fos.write(arr,0,len);

}

fis.close();

fos.close();

17.BufferedInputStream这个类是哪个设计模式的体现()B

a)单例设计模式

b)装饰设计模式

c)工厂设计模式

d)适配器模式

18.下面说法正确的是()D

a)OutputStream是个接口

b)Writer是个接口

c)BufferedOutputStream是FileOutputStream的父类x

d)Reader是InputStreamReader的父类

19.下列关于Java I/O中字符输入流Reader类中的read方法描述错误的是?(A)

a)read()方法的返回值类型为char类型

b)read()方法的返回值类型为int类型

c)read()方法的返回值如果为-1,表示到流的末尾

d)read(char[] cbuf)方法表示将读到的多个字符存入字符数组cbuf中

20.下列哪些选项是Java I/O中字符输出流FileWriter类中的write方法?()ABCD

a)write(char[] cbuf)写入字符数组

b)write(char[] cbuf, int off, int len)写入字符数组的某一部分

c)write(int c)写入单个字符

d)write(String str)写入字符串

21.假设存在xxx.txt文件,内容为”大家好”,以下代码运行的结果为?(A)

public class Test {

public static void main(String[] args) throws IOException { FileReader fr = new FileReader("xxx.txt");

FileWriter fw = new FileWriter("zzz.txt");

int c;

while((c = fr.read()) != -1) {

fw.write();

}

fr.close();

fw.close();

}

}

a)编译报错

b)程序正常运行,zzz.txt文件中的内容为”大家好”

c)程序正常运行,但是没有生成zzz.txt文件

d)程序正常运行,但是zzz.txt文件中是乱码

22.FileWriter类直接继承哪个类?(A)

a)OutputStreamWriter

b)Writer

c)BufferedWriter

d)InputStreamReader

23.关于自定义字符数组拷贝文件的说法错误的是?()AC

a)自定义的数组越大越好

b)自定义的数组既不能太大,也不能太小

c)可以使用FileReader类的available()方法的返回值作为数组的大小

d)建议定义为1024的整数倍,但不能太大,防止内存溢出

24.假设xxx.txt文件中存了2000个汉字,下列程序运行后输出的结果是?(B)public class Test {

public static void main(String[] args) throws IOException { FileReader fr = new FileReader("xxx.txt");

FileWriter fw = new FileWriter("yyy.txt");

int count = 0;

char[] arr = new char[1024];

int len;

while((len = fr.read(arr)) != -1) {

count++;

fw.write(arr,0,len);

}

fr.close();

fw.close();

System.out.println(count);

}

}

a) 1

b) 2

c) 3

d) 4

25.下面的哪个类代表字节输入流到字符输入流转换的桥梁?()A

a)InputStreamReader

b)OutputStreamWriter

c)FileReader

d)BufferedReader

26.BufferedReader读取一行时,判断该行是否结束的标志是什么?()AD

a)\r

b)null

c)-1

d)\r\n

27.缓冲流是否需要关闭()B

a)否

b)是

c)以上答案都不对

d)关不关都可以

28.以下代码运行后输出的结果是?(A)

public class Test {

public static void main(String[] args) throws IOException { System.out.println(fun(5));

}

public static int fun(int num) {

if(num == 1) {

return 1;

}else {

return num * fun(num - 1);

}

}

}

a)120

b)720

c)24

d) 6

29.以下代码运行后输出的结果是?()c

public class Demo8_Digui {

public static void main(String[] args) {

System.out.println(fun(8));

}

public static int fun(int num) {

if(num == 1 || num == 2) {

return 1;

}else {

return fun(num - 2) + fun(num - 1);

}

}

}

a)34

b)13

c)21

d) 5

30.为了提高读写性能,用下面的哪些流?()ABCD

a)BufferedInputStream

b)BufferedOutputStream

c)BufferedReader

d)BufferedWriter

31.下列关于Java I/O中哪个流可以将多个文件中的内容合并到一个文件中(序列流)?()

cC

a)SequenceOutputStream

b)InputStreamReader

c)SequenceInputStream

d)OutputStreamWriter

32.下面的哪个流表示内存输出流?()A

a)ByteArrayOutputStream

b)ByteArrayInputStream

c)ObjectInputStream

d)ObjectOutputStream

33.下面说法正确的是?()b

a)可以通过ByteArrayOutputStream和ByteArrayInputStream实现文件的复制

b)不可以通过ByteArrayOutputStream和ByteArrayInputStream实现文件的复制

c)用ByteArrayOutputStream和ByteArrayInputStream实现文件的复制,会出现乱码

d)用ByteArrayOutputStream和ByteArrayInputStream实现文件的复制,不会出现乱码

34.下面说法错误的是?()D

a)ByteArrayOutputStream内部封装了字节数组

b)new ByteArrayOutputStream()利用空参构造创建对象时,内部的数组的大小为32

c)toByteArray()以字节数组的形式返回数据

d)以上说法都不对

35.关于对象操作流的描述正确的是?()A

a)ObjectOutputStream流是将对象以Object类型写入到文件中

b)ObjectOutputStream流是将内容写入到Object对象中

c)ObjectInputStream流是读取Object对象里的内容

d)ObjectInputStream是从文件中读取一个对象出来,读出来是Object类型的,需要

进行强制类型转换

36.ObjectOputStream类中的哪个方法可以将对象写入到文件中?()C

a)write(Object obj)

b)append(Object obj)

c)writeObject(Object obj)

d)objectWrite(Object obj)

37.下列选项中哪个不属于I/O流?()C

a)FileWriter

b)FileReader

c)Properties

d)PrintStream

38.下列说法不正确的是()D

a)Properties 类表示了一个持久的属性集L

b)Properties 可保存在流中或从流中加载L

c)属性列表中每个键及其对应值都是一个字符串L

d)以上说法都不对

39.以下代码运行后输出的结果是?()C

public class Test {

public static void main(String[] args) throws IOException { Properties prop = new Properties();

prop.setProperty("name", "张三");

prop.setProperty("tel", "189********");

Enumeration en = (Enumeration)

prop.propertyNames();

while(en.hasMoreElements()) {

String key = en.nextElement();

String value = prop.getProperty(key);

System.out.print(value + ":");

}

}

}

a)name:tel

b)tel:name

c)张三:189********:

d)189********:张三

40.关于Properties类中的load和store方法说法正确的是?()AB

a)load方法从流中读取属性列表,键值对,加载到Properties对象中

b)store方法将Properties对象中的键值对,写入到流中

c)load方法将Properties (Properties)对象中的内容加载到文件中

d)以上说法都不对

相关文档