1.填空题
(1)流使应用程序有相当大的灵活性,流允许程序与 、 ,
甚至 。
(2) 对象可以使用read( )方法从标准的输入设备(通常为键盘)读取数据; 对象可以使用print( )方法向标准的输出设备(屏幕)输出显示。
(3)阅读下面的程序段:
File file=new File("./abc.txt");
FileInputStream fis=new FileInputStream(file);
int n=0;
byte b[]=new byte[255];
n=fis.read(b);
System.out.println(n);
System.out.println(file.length());
System.out.println(fis.available());
如果System.out.println(file.length( ))的输出是24,则System.out.println(n)的输出是
;System.out.println(fis.available( ))的输出是 。
(4)阅读下面的程序段:
RandomAccessFile randfile=new RandomAccessFile("./abc.dat", "rw");
System.out.println("文件长度:"+randfile.length());
System.out.println("文件指针:"+randfile.getFilePointer());
randfile.writeDouble(2.1);
System.out.println("文件指针:"+randfile.getFilePointer());
如果程序段第2行输出0,则第3行输出 ;当执行完第4行后,文件长度是 ,第5行输出 。
2.选择题
(1)文件属性主要描述文件的元信息,提供给文件系统用来管理文件,下列哪一个不是它包括的内容?
A.创建日期 B.文件长度 C.文件权限 D.文件数据
(2)目录可以实现通过文件名快速方便地获取文件的属性信息,如文件物理位置等,下列哪一个不是目录具有的功能?
A.存储文件属性
B.实现“按名操作”,用户只需提供文件名,就可以对文件进行操作
C.提高检索速度
D.允许文件共享
(3)输入/输出处理是程序设计中非常重要的一部分,例如从键盘读取数据,从文件中读取数据或向文件中写数据等。Java把这些不同类型的输入/输出源抽象为 ,用统一接口来表示。
A.控制台 B.目录 C.流 D.文件
(4)输入字符流和输出字符流的两个顶层的抽象类,分别是 。
A.FileInputStream和FileOutputStream B.Reader和Writer
C.FileReader和FileWriter D.InputStream和OutputStream
(5)下列哪一个不是File类的功能?
A.获取文件的信息 B.建立目录
C.读取文件数据 D.删除文件
3.问答题
(1)什么是流?简述流的特点。
(2)简述字节流和字符流的区别。
(3)File类有哪些构造函数?
4.上机操作题
(1)编写应用程序,建立一个文件myfile.txt,并可向文件输入“I am a student!”。
(2)当前目录下有一文件file.txt,其内容为“abcde”。编写应用程序,执行该程序后,file.txt的内容变为“abcdeABCDE”。
(3)编写应用程序,可以把从键盘输入的字符串读到数组中,并在屏幕上逆序输出。
(4)编写应用程序,创建一个RandomAccessFile类的对象,使用readFully( )方法读取该程序从起始位置开始的20个字节数据,并显示在屏幕上。
(5)编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字以及其他符号的字符数。
(6)利用文件输入/输出流编写一个实现文件复制的程序,源文件名和目标文件名通过命令行参数传入。