JSP编程技术习题集及实训 下载本文

5.试述request、session和application有效范围的Bean生命周期?

第六章 文件访问

一、选择题

1.Java提供的流类,从功能上看将数据写入文件的流称为( B ) A)输入流 B)输出流 C)字符流 D)字节流 2.Java提供的流类,从所操作的数据单位来看将数据写入文本文件的流称为( C ) A)输入流 B)输出流 C)字符流 D)字节流

3.下列File对象的哪个方法能够判断给定路径下的文件是否存在。( C ) A)canRead() B)canWrite() C)exists() D)isDirectory() 4.下列File对象的哪个方法能够判断应用程序能否读取给定路径下的文件对象。( A )

A)canRead() B)canWrite() C)exists() D)isDirectory()

5.下列File对象的哪个方法能够判断应用程序能否向给定路径下的文件对象写入数据。( B )

A)canRead() B)canWrite() C)exists() D)isDirectory()

6.下列File对象的哪个方法能够判断File对象对应的路径是否为目录。( D ) A)canRead() B)canWrite() C)exists() D)isDirectory()

7.下列File对象的哪个方法能够判断File对象对应的路径是否为文件。( A ) A)isFile() B)createNewFile() C)lastModified() D)length()

8.下列File对象的哪个方法能够创建一个新文件,如果创建成功返回true,否则返回false(该文件已经存在)。( B ) A)isFile() B)createNewFile() C)mikdir() D)length()

9.下列File对象的哪个方法能够创建File对象对应的路径,如果创建成功返回true,否则返回false(该目录已经存在)( C ) A)isFile() B)createNewFile() C)mikdir() D)length()

10.下面是FileInputStream读取文件的代码片段: File file1=new File(fileName);

FileInputStream finput=new FileInputStream(file1); int size=finput.available();

BufferedInputStream buffer1=new BufferedInputStream(finput); byte b[]=new byte[90]; int n=0; while((n=buffer1.read(b))!=-1){ allFilesmess.append(new String(b,0,n));

} buffer1.close(); finput.close();

除最后一次外,代码中buffer1.read(b)每次读取文件的字节数?(A) A)90 B)89 C)n D)size/n

11.下面是FileOutputStream对象写入的代码片段: String filesMess=”abcdef”; FileOutputStream outf=new FileOutputStream(fileName); BufferedOutputStream bufferout= new BufferedOutputStream(outf); byte b[]=this.filesMess.getBytes(); bufferout.write(b); bufferout.flush(); bufferout.close(); outf.close();

代码执行后,文件中会写入哪个字符串的字节码(B ) A)”filesMess” B)”abcdef” C)”b” D)不确定

12.下面是FileReader对象读取文本文件的代码片段: StringBuffer temp=new StringBuffer(); if(fileName!=null){ String strTemp=null; FileReader fr=new FileReader(fileName); BufferedReader buffer1=new BufferedReader(fr); while((strTemp=buffer1.readLine())!=null){ byte bb[]=strTemp.getBytes(); strTemp=new String(bb); temp.append(\ } allFilesmess=\ buffer1.close(); fr.close();

代码中buffer。readLine()每次读取文件的字符数?(D) A)一个字符 B)一行字符包括换行符

C)bb.length个 D)一行字符不包括换行字符

13.BufferedReader处理Reader类中的方法外,还提供了public String readLine()方法,该方法读入一行文本,这里的“一行”指字符串以“\\n”或什么做结尾。()

A)\\t B)\\f C)\\r D)\\p

二、判断题

1.使用Java的输入流读取数据的时候,就会开启一个通向数据源的通道,这个数据源可以是文件,内存,或是网络连接等。(对)

2.使用Java的输出流写入数据的时候,就会开启一个通向目的地的通道,这个目的地可以是文件,但不能是内存或网络连接等。(错) 3.字节流一般是用来读入或写出二进制数据。(对)

4.“纯文本”类的信息,一般使用字符流来进行处理。(对)

5.创建一个File对象,就会在某个物理路径下创建一个文件或目录。(错) 6.File类直接处理文件和文件系统,它并不涉及文件的读写操作。(对)

7.Java程序一般用字符流处理二进制字节对象,用字节流处理字符或字符串对象。(错) 8.InputStream抽象类的read方法出错后一定会抛出一个IOException异常。(对) 9.OutputStream抽象类的write方法出错后一一定会抛出一个IOExcetption异常。(对)

10.BufferedReader提供了public String readLine()方法,该方法从文件中读入一行文本,如果已到达流结尾而未读入任何文字,则返回-1。(错)

11.RandomAccessFile类即不是输入流类InputSteam的子类,也不是输出流类OutputStream的子类,但它同时实现了DataInput和DataOutput接口。(对) 12.使用RandomAccessFile类访问文件的程序,不可以随意改变文件指针位置。(错)

三、填空题

1.Java中有四个“输入/输出”的抽象类,InputStream、 OutputStream 、Reader和 Writer 。 InputStream 和 OutputStream 用于做字节流输入输出操作, Reader 和 Writer 用于做字符流输入输出操作。 2.按照HTTP协议的规定,上传的临时文件 第二 行有上传文件的文件名信息,第四 行结束位置到倒数 第六 行结束位置之间的内容是文件本身部分。 3.response对象的 setContentType() 用来定义服务器发送给客户端的MIME类型。 4. Word文件 的MIME类型是“application/msword”, Excel文件 的MIME类型是“application/msexcel”。

四、思考题

1.字节流和字符流有何区别?

2.BufferedInputStream与FileInputStream如何配合使用? 3.BufferedOutputStream与FileOutputStream如何配合使用? 4.BufferedReader与FileReader如何配合使用? 5.BufferedWriter与FileWriter如何配合使用? 6.RandomAccessFile访问文件有何特点? 7.如何处理文件读写操作中发生的异常?