资源描述
5 Java输入流与输出流
5.1 单项选择题
1.实现字符流的写操作类是( )。
A.FileReader B.Writer C.FileInputStream D.FileOutputStream
2. 实现字符流的读操作类是( )。
A.FileReader B.Writer C.FileInputStream D.FileOutputStream
3.凡是从中央处理器流向外部设备的数据流称为()
A. 文件流
B. 字符流
C. 输入流
D. 输出流
4.构造BufferedInputStream的合适参数是哪一个?( )
A.FileInputStream B.BufferedOutputStream
C.File D.FileOuterStream
5.在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( )语句。
A.import java.awt.* ; B.import java.applet.Applet ;
C.import java.io.* ; D.import java.awt.Graphics ;
6.下列流中哪个不属于字符流?( )
A.InputStreamReader B.BufferedReader
C.FilterReader D.FileInputStream
7.流的传递方式是()
A. 并行的
B. 串行的
C. 并行和串行
D. 以上都不对
8.字符流与字节流的区别在于( )
A.前者带有缓冲,后者没有
B.前者是块读写,后者是字节读写
C. 二者没有区别,可以互换使用
D. 每次读写的字节数不同
9.下列流中哪个不属于字节流 ( )
A.FileInputStream
B.BufferedInputStream
C. FilterInputStream
D. InputStreamReader
10.如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象( )
A.FileInputStream B.FileOutputStream
C.DataOutputStream D.FileWriter
11. 下列哪一个import命令可以使我们在程序中创建输入/输出流对象()
A.import java.sql.*; B.import java.util.*;
C.import java.io.*; D.import .*;
12. 下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是( )。
File f = new File(填代码处);
file =new FileReader(f);
in=new BufferedReader(file);
A."./1.txt" B. "../my/1.txt" C."c:\\my\\1.txt" D. "c:\ my\1.txt"
13. 下面语句的功能是( )。
RandomAccessFile raf2 = new RandomAccessFile("1.txt","rw" );
A.打开当前目录下的文件1.txt,既可以向文件写数据,也可以从文件读数据。
B.打开当前目录下的文件1.txt,但只能向文件写入数据,不能从文件读取数据。
C.打开当前目录下的文件1.txt,但不能向文件写入数据,只能从文件读取数据。
D.以上说法都不对。
14. 下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是( )。
import java.io.*;
public class Test {
public static void main(String args[]) {
try {
String s="ABCDE";
byte b[]=s.getBytes();
FileOutputStream file=new FileOutputStream("test.txt",true);
file.write(b);
file.close();
}
catch(IOException e) {
System.out.println(e.toString());
}
}
}
A. ABCABC B. ABCDE C. Test D. ABCDE ABCDE ABCDE
15. 下面关于java中输入/输出流的说法错误的是( )。
A) FileInputStream与FileOutputStream类用读、写字节流。
B) Reader与Writer类用来读、写字符流。
C) RandomAccessFile只可以用来读文件。
D) File类用来处理与文件相关的操作。
16. 关于BufferedReader类的readLine()方法,以下说法不正确的是()。
A.方法readLine()每次读取一行数据。
B.方法readLine()每次读取一个字节。
C.该方法可能抛出IOException异常,调用该方法时通常应将它放到try块中,并通过catch块处理异常。
D.如果读到流的末尾,该方法返回的结果为null。
5.2 填空题
1. java的输入输出流包括_______、字符流、文件流、对象流以及多线程之间通信的管道。
2. java中的非字符输出流都是________抽象类的子类。
3. java对I/O访问还提供了同步处理机制,保证某时刻只有一个线程访问一个I/O流,这就是_______
4. java中的字符输出流都是抽象类________的子类。
5. DataOutputStream数据流向文件里写数据的方法为__________.
6. RandomAccessFile所实现的接口是_________和DataOutput接口.
7. 文件类_______是java.io中的一个重要的非流类,里面封装了对文件系统进行操作的功能.
8. 文件操作中经常需要的是随机访问, java中的_______类提供了随机访问文件的功能.
9. 所有的字节输入流都从 类继承,所有的字节输出流都从OutputSteam类继承。
10. 与用于读写字节流的InputStream类和OutputStream类相对应,Java还提供了用于读写Unicode字符的字符流Reader类和 类。
5.3 判断题
1. 文件缓冲流的作用是提高文件的读/写效率。( √ )
2. 通过File类可对文件属性进行修改。( √ )
3. IOException必须被捕获或抛出。( √ )
4. Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。( √ )
5. 对象串行化机制是指将程序中对象的状态转化为一个字符流,存储在文件中。( × )
6. Serializable接口是个空接口,它只是一个表示对象可以串行化的特殊标记。( √ )
5.4 程序阅读题
1.阅读下面的程序,并回答问题。
import java.io.*;
public class Test {
public static void main(String args[]) throws IOException {
BufferedReader buf=new BufferedReader(
new InputStreamReader(System.in));
while(true) {
String str=buf.readLine();
if(str.equals("quit"))
break;
int x=Integer.parseInt(str);
System.out.println(x*x);
}
}
}
编译运行上面的程序:
1)从键盘输入5,回车后输出的结果如何?
2)从键盘输入quit,回车后程序执行情况如何?
2. 按注释提示完成文件复制的程序,写出(1)和(2)处的代码。
//FileStream源代码如下:
import java.io.*;
class FileStream {
public static void main(String args []) {
try {
File inFile = new File("file1.txt"); //指定源文件
File outFile = new File("file2.txt"); //指定目标文件
FileInputStream fis =(1);
FileOutputStream fos = new FileOutputStream(outFile);
int c;
//逐字节从源文件中输入,再输出到fos流
while ((c = fis.read ())!=-1)
(2);
fis.close();
fos.close();
}
catch (Exception e) {
System.out.println("FileStreamsTest: "+e);
}
}
}
5.5 参考答案
5.5.1 单项选择题:
1.A 2.B 3.D 4.A 5.C 6.D 7.B 8.D 9.D 10. A 11.C 12.C 13.A 14.D 15.C
16.B
5.5.2 填空题
1. 字节流
2. OutputStream
3. 过滤流
4. Writer
5. write()
6. DataInput接口
7. File
8. RandomAccessFile
9. InputStream
10. Writer
5.5.3 判断题
1. √ 2. √ 3.√ 4.√ 5. × 6. √
5.5.4 程序阅读题
1. 答案:
1)25
2)终止应用程序的运行。
2.答案:
(1)new FileInputStream(inFile);
(2) fos.write(c);
6
展开阅读全文