第9章 输入输出流文档格式.docx
- 文档编号:17269787
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:19
- 大小:22.25KB
第9章 输入输出流文档格式.docx
《第9章 输入输出流文档格式.docx》由会员分享,可在线阅读,更多相关《第9章 输入输出流文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
请问,以下哪些类提供了创建一个目录的方法?
(1)File
(2)DataOutput
(3)Directory
(4)FileDescriptor
(5)FileOutputStream
(10)
(6)详解:
本题考查的核心是File类上定义的创建目录的方法。
File类上其定义了两个用于创建目录的方法,分别为和方法。
方法用于创建一个由类代表的目录。
Mkdirs()方法用于创建一个由File类代表的目录,包括创建父目录。
示例04:
请问以下关于File类的描述哪些是正确的?
请选择所有正确的答案:
(1)File类可以用于改变当前工作路径。
(2)File类可以用于访问当前工作路径中的文件。
(3)当一个File类实例被构建时,对应的目录或文件在本地文件系统中被创建。
(4)File类可以用于访问本地文件系统的目录或文件。
(5)File类实现实例可以被垃圾回收器回收。
(6)当一个File类实例被垃圾回收器回收后,对应的目录或文件也被删除。
(2)(4)(5)
本题考查的核心是File类。
选项
(2)(4)正确,。
这正是File类的用途。
选项(5)正确,选项(6)错误,因为File类实例只是文件的代表,并不是文件本身,其如同其他类实例一样,可以被垃圾回收器回收,并且不会将对应的文件删除掉。
选项
(1)错误,File类实例代表的文件如果杂文件系统中不存在File,类也不会在文件系统中自动创建该文件,但可以通过调用File类中定义的方法来创建一个新的空的文件。
示例05:
请问以下哪些描述是正确的?
(1)RandomAccessFile类是java.io.File类的子类。
(2)Java.io.FileWriter类提供有操作基本数据类型的方法。
(3)RandomAccessFile类提供有删除磁盘文件的方法。
(4)File类提供有删除磁盘文件的方法。
(4)
本题考查的核心是File类的delete()方法。
定义在java.io.File类上的delete方法用来删除一个由此File类实例代表的文件或目录。
如果此路径名代表的是目录,则该目录必须为空才能被删除。
选项
(1)错误,因为RandomAccessFile类和File类均是Objeect类的直接子类。
选项
(2)错误,FileWriter首先类没有定义任何方法,其次FileWriter类是java.io.Writer的子类,因此继承的方法基本也是字符操作的方法。
选项(3)错误,RandomAccessFile类上来提供有删除文件的方法,其提供的方法基本上是对文件进行读写的方法。
示例06:
请问,以下哪些语句是构造实例的正确形式?
(1)RandomAccessFile(“file”,“r”);
(2)RandomAccessFile9(“r”,“file”);
(3)RandomAccessFile(“r”,“file”);
(4)RandomAccessFile(“file”,’r’);
(5)RandomAccessFile(“file”,“rw”);
(1)(5)
本题考查的核心是随机访问文件RandomAccessFile类的构造器。
RandomAccessFile类共定义了两个构造器,分别为RandomAccessFile(Filefile,Stringmode)和RandomAccessFile(Stringnane,Stringmode)。
其中参数mode,既访问模式只能取只读模式或读写模式rw。
示例07:
请问,以下哪些类的构造器需要mode参数r或rw?
(1)DataInputStrcam
(2)InputStream
(3)RandomAccessFile
(4)File
(5)以上均不对。
(3)
本题考查的核心是随机访问文件RandomAccessFile类的构造器,解释同上。
示例08:
请问,以下哪些有关RandomAccessFile类的描述是正确的?
请选择所有正确答案;
(1)当对使用只读模式创造的文件进行写操作时,则IOException异常抛出。
(2)RandomAccessFile类提供有删除磁盘上文件的方法。
(3)RandomAccessFile类可以和DataInputStream进行连接。
(4)使用读写模式可以创造一个不存在的指定文件。
(5)RandomAccessFile类提供有读写基本数据类型数据的方法。
(1)(4)(5)
本题考查的核心是RandomAccessFile类。
选项
(2)错误,RandomAccessFile类上未提供有删除文件的方法,起提供的方法基本上是对文件进行读写的方法。
选项(3)错误,因为RandomAccessFile类和io包中其他两个流类和读写器类不兼容,因此RandomAccessFile类不可以和DataInputStream类进行连接。
选项(4)正确,RandomAccessFile类不同于File类,其可以在文件系统中创建一个不存在的指定文件,但必须采用rw读写模式。
示例09:
请问,以下哪些修饰符用于修饰属性时,该属性不能被序列化?
(1)private
(2)static
(3)transient
(4)protected
(2(3)
本题考查的核心是序列化的条件。
类属性一般都能被序列化,只有被transient关键修饰的类属性,使得该属性不再是对象的持久状态的一部分,因此该属性内容在序列化后无法获得访问。
示例10:
请问,以下哪些有关Serializable的描述是正确的?
(1)Serializable是java语言中的一个关键字。
(2)Serializable是一个可以被实现的接口。
(3)Serializable是一个可以被继承的类。
(4)以上均不对。
(2)
本题考查的核心是Serializable接口。
Serializable是一个接口,实现了此接口的类具有序化的能力。
反之,没有实现此接口的类不具有序化其状态的能力。
一个具有序化的能力的类,其子类也具有序化能力。
此接口没有定义任何反法和属性域,只有用来标记序化的能力。
示例11:
请问,以下哪些是FileOutputStream类的正确构造器形式?
(1)FileOutputStream(FileDescriptorfd)
(2)FileOutputStream(Stringn,booleana)
(3)FileOutputStream(booleana)
(4)FileOutputStream()
(5)FileOutputStream(Filef)
(1)
(2)(5)
本题考查的核心是FileOutputStream类的构造器。
该类工定义5种形式的构造器,分别为FileOutputStream(Filefile),FileOutputStream(Filefile,Booleanappend),FileOutputStream(FileDescriptorfdObj),FileOutputStream(Stringname)和FileOutputStream(Stringname,booleanappend).
示例12:
请问,以下哪些定义在java.io包中的抽象类?
(1)InputStream
(2)PrintStream
(3)Reader
(4)FileInputstream
(5)FileWriter
(1)(3)
本题考查的核心是java.io包中的抽象类。
抽象类的用途是规范一类对象的共性,具体类继承该类。
抽象类一般位抽象类于继承树的顶端。
在io包中主要分为两种类,输入/输出流类和读/写类。
这两种类的顶层类分别为InputStream/OutputStream.Reader/Writer,均为抽象类。
示例13:
(1)InputStream类和InputStream类是基于字节流的。
(2)ObjectInputStream类和ObjectInputStream类不支持序列化的对象。
(3)Reader类和Writer类是基于字符流的。
(4)Reader类和Writer类是支持对象序列化的首选。
本题考查的核心是java.io包中的类。
在io包中主要分为两种类,基于字节流的输入/输出流类和基于字符流的读/写类。
因此选项
(1)(3)正确。
选项
(2)错误,因为ObjectInputStream和ObjectInputStream类是专门被用来处理序列化的对象。
示例14:
请问,以下哪个类被用于作为基本的IO控制台?
(1)System
(2)SecurityMananger
(3)Math
(4)Runtime
(5)详解:
本题考查的核心是System类。
System类是定义在包java.lang中的,不是定义java.io在包中,一般用作基本的IO控制台打印输出信息。
调用System.out.print()方法打印输出信息。
可向该方法传入所有类型数据。
包括引用型数据。
示例15:
请问,从InputStream对象如何创建一个Reader对象?
请选择一个正确答案:
(1)使用InputStream类中定义的createReader()方法。
(2)使用Reader类中定义的createReader()方法。
(3)构造一个InputStream实例,将InputStream对象作为InputStream类构造器的参数传入。
(4)构造一个OutputStreamReader实例,将InputStream对象作为OutputStreamReader类构造器的参数传入。
本题考查的核心是如何将基本字节的类和基本字符的类关联起来。
InputStreamReader类的构造器语法为putlicInputStreamReader(InputStreamin)。
可以将一个InputStream类实例作为InputStreamReader类构造器的参数传入,这样就将两种输入流连接起来,流和流之间就可以传输数据。
示例16:
(1)Writer类可以使用不同的字符编码向输出流写入字符。
(2)Writer类可以输出流写入字符。
(3)Writer类提供想输出流写入任意基本数据类型的方法。
(4)Writer类提供想输出流写入引用型数据的方法。
(1)
(2)
本题考查的核心是Writer类。
Writer类是一个抽象类,代表写入字符流。
其上定义的写入方法均为以字符为参数,所以选项(3)、(4)错误。
示例17:
给出以下代码,请问该程序的运行结果是什么?
ClassExample{
Publicstaticvoidmain(Stringargs[]){
Filef=newFile(“c:
\\large.txt”);
}
请选择一个正确答案;
(1)Large.txt文件在本地硬盘上被创建。
(2)在UNIX系统上运行失败,因为路径分隔符不正确。
(3)large.txt文件在本地硬盘上没有被创建。
(4)如果large.txt文件已存在,则一个异常被抛出。
(5)程序编译失败,因为File类构造器形式错误。
File类实例只是文件的代表,并不是文件本身,因此File类实例代表的文件如果在文件系统中不存在,File类也不会在文件系统中自动创建该文件。
示例18:
给出以下代表,请问该程序的运行结果是什么?
RandomAccessFileraf=newRandomAccessFile(“test.java”,”rw”);
raf.seek(raf.length());
(1)代码编译失败。
(2)运行期IOException异常抛出。
(3)文件指针定位在文件中最后一个字符前。
(4)文件指针定位在文件中最后一个字符后。
本题考查的核心是seek()方法。
定义在java.io.RandomAccessFile类上的seek()方法的语法形式为publicvoidseek(longpos)throwsIOException。
该方法用于设置文件指针偏移量,该偏移相对于文件起始处,它是下一个读取、写入字节的位置。
偏移量可以超过文件结束点,但不会改变文件的长度。
只有在偏移量超过文件结束点,且有数据写入后,才会改变文件的长度。
在本示例中,由于传入seek()方法的偏移量是文件的长度,因此文件指针顶位在文件中最后一个字符后。
示例19:
importjava.io.*;
publicclassExample{
publicstaticvoidmain(Stringargs[])throwsIOException{
printStreampr=newprintStream(newFileOutStream(“outfile”));
System.out=pr
System.out.println(“OK!
”);
(1)代码编译失败,因为System.out是一个常量,不能给其赋值。
(2)代码编译成功,因为System.out是一个常量,不能给其赋值,导致运行期异常抛出。
(3)打印输出OK!
定义在java.lang包中的System类,一般用作用基本的IO控制台打印输出信息。
out是定义在System类上的一个公共静态常量,其类型为printStream,调用其上System.out.print()的方法打印输出信息。
在本示例中,向常量out赋值是会产生编译错误的。
示例20:
Importjava.io.*;
PublicclassExample{
Publicstaticvoidmain(Stringargs[])throwsIOException{
StringReaderstrinin=newStringReader(“test”);
LineNumberReaderin=newLineNumberReader(strinin);
PrintWriterout=newPrintWriter(System.out);
out.println(in.readLine());
out.flush();
(1)test
(2)l.test
(3)l:
test
(4)ltest
本题考查的核心是流的联合使用。
流之间可以联合使用,即底层流可以作为上层流的构造器参数传入,这样数据可以在两个流之间传输。
在本示例中。
首先构造一个数据为一个字符串test的StringReader类实例字符流,然后将其作为参数传入到LineNumberReader类构造器中,这样可以调用LineNumberReader类的readLine()方法读取出StringReader类实例字符流中的字符串数据test,然后打印输出该字符串。
注意,如果最后没有调用flush()来刷新流,将数据发送出来,则无内容在控制台上输出。
示例21:
给出以下代码,请问该程序的运行结果是什么/
impritjava.io.*;
PublicclassTest{
Publicstaticvoidmain(Stringargs[])thowsIOException{
RandomAccessFilefile=newRandomAccessFile(“test.txt”,”rw”);
file.writeBoolean(true);
file.writeInt(123456);
file.writeInt(7890);
file.writelong(1000000);
file.writeInt(777);
file.writeFloat(.0001f);
file.seek(5);
System.out.println(file.readInt());
File.close();
(1)123456
(2)7890
(3)1000000
(4)777
本题考查的核心是对随即访问文件的读写操作。
本题中共写入字节数为1(Boolean)+4(int)+4(int)+8(long)+4(int)+8(float)=29.Seek()方法用于从文件起始处跳过指定数量的字节数,seek(5)是跳过了5个字节,所以从第六字节开始读取,即从写入的第二个int型值(7890)开始读取,故打印输出为7890。
示例22:
给出以下代码,当文件不存在时,请问该程序的运行结果是什么?
Publicclassvoidmain(Stringargs[]){
try{
FileReaderfileRedaer=newFileReader(“MyFile.java”);
BufferedReaderbuffereReader=newBufferedReader(fileReader);
StringstrString;
fileReader.close();
while((strString=buffereReader.readLine())!
=null){
System.out.println(strString);
}catch(IOExceptionie){
System.out.println(ie.getMessage());
(1)运行期无异常抛出。
(2)执行fileReader.close()抛出FileNotFoundException异常。
(3)执行newFileReader(“MyFile.java”)抛出FileNotFounException异常。
(4)执行newBufferedReader(fileReader)抛出FileNotFounException异常。
本题考查的核心是文件访问。
当构造一个FileReader实例时,如果指定文件不存在,则抛出FileNotFounException异常。
在本示例中,由于MyFile.java文件不存在,因此杂实例化对象时抛出FileNotFounException异常。
示例23:
Importjava.io*;
classExample{
publicstaticvoidmian(Stringagrs[]){
StringstrString=”test”;
Charbuffer[]=newchar[strString.length()];
strString.getChars(0,strString.length(),buffer,0);
FileWriterf=newFileWriter(“MyFile.txt”);
FileWriterf1=f;
fl.close();
For(inti=0;
i<
buffer.length;
i+=2){
f.write(buffer[i]);
f.close();
FileWriterf2=newFileWriter(“MyFile2.txt”);
f2.write(buffer);
f2.close();
catch(IOExceptionie){
System.out.println(ie.getMessage());
(2)执行fl.close()抛出IOException异常。
(3)执行f.write(buffer[i])抛出IOException异常
(4)执行newFileWriter(“MyFile1.txt”)抛出IOException异常
当向一个IO流写入数据时,如果流已经关闭,则会抛出IOException异常。
在本示例中,由于引用变量f和f1指向同一个FileWriter对象,f1引用的流被关闭,因此引用变量f指向的流也就被关闭,再对流进行访问f.write(buffer[i])操作,就会抛出IOException异常。
本考点练习题
练习01:
请问,以下哪些不是类提供的方法?
(1)delete()
(2)rm()
(3)length()
(4)mkdir()
练习02:
请问,UTF字符是否是8位编码?
练习03:
请问,File类是否可以代表文件系统中的一个文件或目录?
练习04:
请问,以下哪些语句是构造RandomAecessFile类实例的正确形式?
(1)RandomAecess
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 输入输出流 输入输出