第七章 IO (第六次作业) 您所在的位置:网站首页 java实现删除文件的恢复 第七章 IO (第六次作业)

第七章 IO (第六次作业)

2024-01-04 07:08| 来源: 网络整理| 查看: 265

一.单选题(共27题,24.3分)

1当文件不存在或不可读时,使用FileInputStream读取文件会报下列哪一种错误( )

A、NullPointerExceptionB、RuntimeExceptionC、FileNotFoundExceptionD、NoSuchFieldException

正确答案: C 

答案解析:在读取文件数据时,必须保证文件是存在并且可读的,否则会抛出文件找不到的异常FileNotFoundException。

2下列说法中,关于在Java中删除目录说法错误的是(   )

A、在删除目录时,先删除这个目录再删除该目录下的所有文件B、delete()方法可以删除一个指定的文件C、在Java中删除目录是从虚拟机直接删除不走回收站,文件将无法恢复D、File类的delete()方法不允许对还有子文件的目录直接删除

正确答案: A 

答案解析:在删除目录时,删除完一个目录里的所有文件后,才能删除这个目录。

3Java流被分为字节流、字符流两大流类,两者都作为(   )类的直接子类。

A、ObjectB、ThrowableC、ExceptionD、以上都不是

正确答案: A 

答案解析:InputStream、OutputStream都是直接继承自Object类。

4下列File类的构造方法格式错误的是()

A、File(Stringpathname)B、File(Fileparent,Stringchild)C、File(Stringparent,Filechild)D、File(Stringparent,Stringchild)

正确答案: C 

答案解析:查看API可知A选项的格式错误,不能通过String类型父路径和File类型子路径构建一个完整的文件路径实例。

5FileWriter类中有很多重载的读取字符的方法,其中read()方法如果读取已到达流的末尾,将返回的值是()

A、0B、-1C、无返回值D、1

正确答案: B 

6假设在E盘下的cn文件夹中有文件abc.txt,则下列代码的运行结果为()

class Example {

   public static void main(String[] args) {  

       File file = new File("E:\\cn"); // 这是一个代表目录的File对象

       if (file.exists()) {  

           System.out.println(file.delete());  

       } 

   }

}

A、true文件夹删除不成功,abc.txt删除成功B、false文件夹删除不成功,abc.txt删除不成功C、true文件夹删除成功D、false文件夹删除不成功,abc.txt删除成功

正确答案: B 

答案解析:运行结果中输出了false,这说明删除文件失败了。因为File类的delete()方法只是删除一个指定的文件,假如File对象代表目录,并且目录下包含子目录或文件,则File类的delete()方法不允许对这个目录直接删除。

7下列关于java.io.FileOutputStream的说法错误的是(   )

A、使用字节流进行文件的拷贝,文件既可以是文本文件也可以是图片、音频等文件。B、文件拷贝时,使用输出流进行文件写出的时候,目标文件名称可以与原文件不同名。C、文件拷贝时,使用输入流读取的文件必须存在。否则抛出java.io.FileNotFoundException。D、使用IO流进行文件拷贝。文件大小不能超过20M,否则内存溢出。

正确答案: D 

答案解析:只要对文件进行拷贝操作时,字节缓冲区定时刷新就不会出现内存溢出的现象。

8阅读下列代码 import java.io.*; public class Example{ public static void main(String[] args) throws Exception { OutputStream out = new FileOutputStream("itcast.txt ", true);   String str = "欢迎你!";   byte[] b = str.getBytes();   for (int i = 0; i   public static void main(String[] args) {   File file = new File("E:\\cn"); // 这是一个代表目录的File对象   if (file.exists()) {    System.out.println(file.delete());   }  } }

A、false文件夹删除不成功,abc.txt删除成功B、true文件夹删除成功C、true文件夹删除不成功,abc.txt删除成功D、false文件夹删除不成功,abc.txt删除不成功

正确答案: D 

答案解析:运行结果中输出了false,这说明删除文件失败了。因为File类的delete()方法只是删除一个指定的文件,假如File对象代表目录,并且目录下包含子目录或文件,则File类的delete()方法不允许对这个目录直接删除。

10以下选项中,哪个是FileInputStream的父类( )

A、OutputStreamB、FileOutputC、FileD、InputStream

正确答案: D 

11请将下列四个步骤进行排列,完成文件的赋值操作( )

①将字节流输入流和源文件相关联,输出流和目标文件相关联。

②明确源文件和目标文件。

③使用输入流的读取方法读取文件,并将字节写入到目标文件中。

④关闭资源。

A、①②③④B、②③①④C、②①③④D、①③②④

正确答案: C 

12以下关于File类的isDirectory ()方法的描述,哪个是正确的(  )

A、判断该File对象所对应的是否是目录。B、在当前目录下生成指定的目录。C、返回文件的最后修改时间。D、判断该File对象所对应的是否是文件。

正确答案: A 

答案解析:isDirectory()方法用于判断File对象是否为文件夹,返回值为boolean类型。

13阅读下列代码 import java.io.*; public class Example{ public static void main(String[] args) throws Exception {  File file = new File("itcast.txt");  FileInputStream in = new FileInputStream(file);  // 以下是用缓冲区读写文件 byte[] buff = new byte[1024]; // 定义一个字节数组,作为缓冲区     int len;     while ((len = in.______) != -1) { // 判断是否读到文件末尾    System.out.println(new String(buff,0,len));   }   in.close();  } } 请说出下划线上,填写的方法名称(   )

A、write()B、write(buff)C、read()D、read(buff)

正确答案: D 

答案解析:通过读取字节数组,实现字节流的缓冲区,提高读写效率。

14下列File类的方法中,可以获得文件对象父路径名的是(    )。

A、getAbsolutePath()B、getPath()C、getName()D、getParent()

正确答案: D 

答案解析:getName()获取文件或目录的名称,getParent ()获取文件父路径名,getPath()获取文件名的字符串形式,getAbsolutePath()获取文件的绝对路径。

15下面关于字节流缓冲区的说法错误的是( )

A、使用字节流缓冲区读写文件,可以大大的提高文件的读写操作。B、使用字节流缓冲区读写文件是一个字节一个字节的读写。C、字节流缓冲区就是一块内存,用于存放暂时输入输出的数据。D、使用字节流缓冲区读写文件时,可以一次性读取多个字节的数据。

正确答案: B 

答案解析:使用字节流缓冲区读写文件时,可以一次性读取多个字节的数据,并保存在字节数组中,然后将字节数组中的数据一次性写入文件。

16下列OutputStream流方法那个是刷新此输出流并强制写出所有缓冲的输出字节()

A、void write(int b)B、void write(byte[] b)C、void close()D、void flush()

正确答案: D 

17以下选项中,哪个是FileInputStream的父类(  )

A、FileOutputB、OutputStreamC、FileD、InputStream

正确答案: D 

答案解析:FileInputStream是用来读取文件的字节流,属于InputStream类的子类。

18下列选项中,使用了缓冲区技术的流是()

A、FileOutputStreamB、FileReaderC、BufferedInputStreamD、DataInputStream

正确答案: C 

答案解析:BufferedInputStream带缓冲的字节输入流,使用了缓冲区技术。 FileOutputStream、DataInputStream和 FileReader 都没有使用缓冲区技术。

19阅读下列代码 import java.io.*; public class Example{  public static void main(String[] args) throws Exception {   // 创建一个带缓冲区的输入流   BufferedInputStream bis = new BufferedInputStream(new ________(     "src.txt"));   // 创建一个带缓冲区的输出流   BufferedOutputStream bos = new BufferedOutputStream(     new FileOutputStream("des.txt"));   int len;   while ((len = bis.read()) != -1) {    bos.write(len);   }   bis.close();   bos.close();  } } 请说出程序中,下划线位置的答案(    )

A、FileB、FileInputStreamC、以上答案都不正确D、InputStream

正确答案: B 

答案解析:BufferedInputStream需要接受一个InputStream对象,但是InputStream是抽象类,必须传入其实例化对象,FileInputStream是其实例化子类。所以这里选A。

20阅读下段代码 import java.io.*; public class Example{ public static void main(String[] args) throws Exception {  FileInputStream fis = new FileInputStream("file.txt"); FileOutputStream fos = new FileOutputStream("copy_file.txt");   int ch = 0;   while((ch =fis.read())!=-1){     fos.write(ch);   }   fos._______;   fis.close();  } } 请说出下划线上,填写的方法名称(   )

A、available()B、write()C、read()D、close()

正确答案: D 

答案解析:使用输入输出流操作文件接受后,需要关闭资源。

21使用FileReader读取reader.txt文本文件中的数据,reader.txt中的内容为:abc import java.io.*; public class Example01 {  public static void main(String[] args) throws Exception {   FileReader reader = new FileReader("reader.txt");   int ch;    while ((ch = reader.read()) != -1) {     System.out.print(ch+" ");   }   reader.close();   } } 运行以上程序的结果是(    )

A、无输出B、编译出错C、979899D、abc

正确答案: C 

答案解析:字符输入流的read()方法返回的是int类型的值,如果想获得字符就需要进行强制类型转换,在程序中将变量ch转为char类型再打印。

22File类中以字符串形式返回文件绝对路径的的方法是(  )

A、getName()B、getPath()C、getAbsolutePath()D、getParent()

正确答案: C 

答案解析:

getPath()表示获取File对象的抽象路径 getName()表示获取File对象的名称 getParent()表示获取File对象的父级目录的路径

23下列关于java.io.FileOutputStream的说法错误的是( )

A、java.io.FileOutputStream用来进行文件的写入操作。用它提供的方法可以将指定文件写入本地主机硬盘上。B、java.io.FileOutputStream一次只能读取一个字节的内容。C、通过类File的实例和者一个表示文件名称的字符串可以生成文件输出流。在流对象生成的同时文件被打开。但还不能进行文件读写。D、java.io.FileOutputStream可以读取字节文件也可以读取字符文件。

正确答案: B 

答案解析: 使用FileOutputStream类write(byte[] b)写入文件,可以自定义字节数组的长度。

24阅读下列代码 import java.io.*; public class Example { public static void main(String[] args) throws Exception {  FileInputStream in = new FileInputStream("itcast.txt");   int b = 0;            while (true) {    b = in.______;     if (b == -1) {      break;    }    System.out.println(b);    }   in.close()  } } 请说出下划线上,填写的方法名称(   )

A、read()B、close()C、available()D、skip()

正确答案: A 

答案解析:FileInputStream对象通过read()函数读取一个字节。

25下列选项中,哪个是文本文件读取类(    )

A、FileReaderB、BufferReaderC、FileWriterD、BufferWriter

正确答案: A 

答案解析:FileWriter是输出流,BufferReader和BufferWriter是字节缓冲流,FileReader是可以读取文本文件的内容类。

26下列选项中,不属于FileReader类的方法的是( )

A、toString()B、readLine()C、read()D、close()

正确答案: B 

答案解析:FileReader类中的read()和close()方法继承自 InputStreamReader,toString()继承自Object类。

27以下关于File类的isDirectory ()方法的描述,哪个是正确的( )

A、在当前目录下生成指定的目录。B、判断该File对象所对应的是否是文件。C、判断该File对象所对应的是否是目录。D、返回文件的最后修改时间。

正确答案: C 

答案解析:isDirectory()方法用于判断File对象是否为文件夹,返回值为boolean类型。

二.多选题(共18题,16.2分)

1关于删除文件及目录的操作,下列说法中正确的是( )

A、使用delete()方法删除带文件的目录时,需要先将目录中的文件全部删除。B、可以通过递归的方式将整个目录以及其中的文件全部删除。C、Java中删除目录或文件是无法恢复的。D、可以使用delete()方法直接删除带文件的目录。

正确答案: ABC

2下面关于字节流缓冲区的描述中,哪些是错误的(  )

A、字节流缓冲区的大小是1024。B、字节流缓冲区只能用在文件输出流中。C、字节流缓冲区只能用在文件输入流中。D、字节流缓冲区的大小是可以自定义设置的。

正确答案: ABC 

答案解析:

字节流缓冲区的大小是可以自定义设置的; 字节流缓冲区既可以用在文件输出流中,也可以用在文件输入流中。

3下列关于InputStream流方法的描述正确的是()

A、int read():从输入流读取一个8位的字节,把它转换为计算机字符并返回B、void close():关闭此输入流并释放与该流关联的所有系统资源C、int read(byte[] b,int off,int len):从输入流读取若干字节,把它们保存到参数b指定的字节数组中,off指定字节数组开始保存数据的起始下标,len表示读取的字节数目D、int read(byte[] b):从输入流读取若干字节,把它们保存到参数b指定的字节数组中,返回的整数表示读取字节的数目

正确答案: BCD 

4下列选项中,关于File类中的list ()方法说法正确的是()

A、该方法返回一个File类型的数组B、该方法接收一个FilenameFilter类型的参数C、在调用list()方法时,需要实现文件过滤器D、该方法返回一个String类型的数组

正确答案: BCD 

答案解析:list ()方法返回一个String类型的数组。

5下列选项中关于InputStreamReader转换流描述正确的是(   )

A、可以使用InputStreamReader转化流转换图片文件。B、InputStreamReader是Reader类的子类。C、InputStreamReader类具有一次读取一行数据的功能。D、InputStreamReader的作用是将接收的字节流转换为字符流。

正确答案: BD 

答案解析:AB选项皆是InputStreamReader转换流的特性,InputStreamReader不具备一次读取一行数据的功能,BufferedReader高效流才具备这个功能,日常应用中,我们通常会将字符转换流对象进行包装,运用BufferedReader高效流来完成一次读取一行数据的功能

6下列关于IO流的描述中,正确的有哪些()

A、字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示。B、按照数据传输方向的不同又可分为输入流和输出流。C、按照操作数据的不同,可以分为字节流和字符流。D、符流的输入输出流分别用java.io.Reader和java.io.Writer表示。

正确答案: ABCD 

答案解析:IO流有很多种,按照操作数据的不同,可以分为字节流和字符流,按照数据传输方向的不同又可分为输入流和输出流,程序从输入流中读取数据,向输出流中写入数据。在IO包中,字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示,字符流的输入输出流分别用java.io.Reader和java.io.Writer表示。

7默认情况下,使用FileOutputStream写数据时,下列说法中哪些是错误的()

A、当文件存在时,会覆盖原文件。B、当文件不存在时,程序会报错。C、当文件不存在时,会自动创建文件。D、当文件存在时,会在原文件上追加数据。

正确答案: BD 

答案解析:默认情况下,使用FileOutputStream写数据时,当文件不存在时,会自动创建文件。 如果希望在已存在的文件内容之后追加新内容,则可使用FileOutputStream的构造函数FileOutputStream(String fileName, boolean append)来创建文件输出流对象,并把append 参数的值设置为true。

8下列关于转换流描述正确的有( )

A、转换流是一种包装流B、转换流不能对图片、音频等数据的读写C、转换流是一种字符流D、转换流可以对图片、音频等数据的读写

正确答案: ABC 

9以下哪些属于OutputStream类的方法()

A、flush()B、write(byte)C、close()D、available()

正确答案: ABC 

10以下哪些属于Writer类的子类()

A、CharArrayWriterB、BufferedWriterC、ByteArrayWriterD、FileWriter

正确答案: ABD 

11使用IO流拷贝文件时,下列哪些路径可以被正确解析()

A、"F:\\\Kugou\\\阿杜-天黑.mp3"B、"f:\\Kugou\\阿杜-天黑.mp3"C、"F:\\Kugou\\阿杜-天黑.mp3"D、"f:/Kugou/阿杜-天黑.mp3"

正确答案: BCD 

答案解析:文件路径盘符不区分大小写 ,这是因为在Windows中的目录符号为反斜线“\”,但反斜线“\”在Java中是特殊字符,表示转义符,所以在使用反斜线“\”时,前面应该再添加一个反斜线,即为“\\”。除此之外,目录符号也可以用正斜线“/”来表示,如:“D:/file/a.txt”。

12关于删除文件及目录的操作,下列说法中正确的是(  )

A、使用delete()方法删除带文件的目录时,需要先将目录中的文件全部删除。B、可以通过递归的方式将整个目录以及其中的文件全部删除。C、可以使用delete()方法直接删除带文件的目录。D、Java中删除目录或文件是无法恢复的。

正确答案: ABD 

答案解析:使用delete()方法删除带文件的目录时,需要先将目录中的文件全部删除 可以通过递归的方式将整个目录以及其中的文件全部删除。 Java中删除目录或文件是无法恢复的。

13下面关于FileWriter的说法正确的是()

A、写数据时,向文件中追加内容,可以使用FileWriter(String fileName, boolean append)构造方法B、使用FileWriter时,如果文件存在,则会首先清空文件中的内容,再进行写入C、使用FileWriter时,可以使用nextLine()方法进行换行写入D、使用FileWriter时,如果指定的文件不存在,就会先创建文件,再写入数

正确答案: ABD 

14下列选项中,关于File类中的list ()方法说法正确的是(    )

A、在调用list()方法时,需要实现文件过滤器B、该方法接收一个FilenameFilter类型的参数C、该方法返回一个File类型的数组D、该方法返回一个String类型的数组

正确答案: ABD 

答案解析:list ()方法返回一个String类型的数组。

15下列有关字节缓冲流的描述正确的是()

A、字节缓冲流能有效的提高数据的读写效率B、应用程序是通过缓冲流来完成数据读写的,而缓冲流又是通过底层被包装的字节流与设备进行关联的C、字节缓冲流使用了装饰设计模式D、java.io包中提供的字节缓冲流包括BufferedInputStream和BufferdOutputStream

正确答案: ABCD 

答案解析:java.io包中提供的字节缓冲流包括BufferedInputStream和BufferdOutputStream。字节缓冲流使用了装饰设计模式。应用程序是通过缓冲流来完成数据读写的,而缓冲流又是通过底层被包装的字节流与设备进行关联的。字节缓冲流对数据进行了缓冲,从而有效的提高数据的读写效率。

16关于FileOutputStream构造方法的说法中,哪些是正确的(  )

A、FileOutputStream(Filefile)创建一个向指定File对象表示的文件中写入数据的文件输出流。B、FileOutputStream(Stringname)创建一个向具有指定名称的文件中写入数据的输出文件流。C、FileOutputStream(Filefile,booleanappend)创建一个向指定File对象表示的文件中追加写入数据的文件输出流。D、FileOutputStream(Stringname,booleanappend)创建一个向具有指定name的文件中追加写入数据的输出文件流。

正确答案: ABCD 

答案解析:FileOutputStream(File file)创建一个向指定File对象表示的文件中写入数据的文件输出流。 FileOutputStream(File file, boolean append)创建一个向指定File对象表示的文件中追加写入数据的文件输出流。 FileOutputStream(String name)创建一个向具有指定名称的文件中写入数据的输出文件流。

17下列选项中关于InputStreamReader转换流描述正确的是( )

A、InputStreamReader类具有一次读取一行数据的功能。B、可以使用InputStreamReader转化流转换图片文件。C、InputStreamReader的作用是将接收的字节流转换为字符流。D、InputStreamReader是Reader类的子类。

正确答案: CD 

18下列关于IO流的描述中,正确的有哪些(  )

A、字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示。B、字符流的输入输出流分别用java.io.Reader和java.io.Writer表示。C、按照操作数据的不同,可以分为字节流和字符流。D、按照数据传输方向的不同又可分为输入流和输出流。

正确答案: ABCD 

答案解析:IO流有很多种,按照操作数据的不同,可以分为字节流和字符流,按照数据传输方向的不同又可分为输入流和输出流,程序从输入流中读取数据,向输出流中写入数据。在IO包中,字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示,字符流的输入输出流分别用java.io.Reader和java.io.Writer表示。

三.填空题(共28题,25.2分)

1阅读下面的程序

public class Example {

 public static void main(String[] args) {

      // 创建一个代表目录的File对象

  File file = new File("E:\\cn\\itcast");

     // 调用FileDir删除方法

  fileDir(file);

 }

 public static void fileDir(File dir) {

     // 获得表示目录下所有文件的数组

  File[] files = dir.listFiles();

     // 遍历所有的子目录和文件

  for (File file : files) {  

   if (file.isDirectory()) {

          // 如果是目录,递归调用

     【】(file);   

   }

          // 输出文件的绝对路径

   System.out.println(file.getAbsolutePath());

  }

}

}

请填写空白处的代码,使程序打印出itcast文件夹以及子文件夹中所有文件的绝对路径。

正确答案:

第一空: 

fileDir

filedir

答案解析:定义了一个静态方法fileDir (),方法接收一个表示目录的File对象。在方法中,首先通过调用listFiles()方法把该目录下所有的子目录和文件存到一个File类型的数组files中,接着遍历数组files,对当前遍历的File对象进行判断,如果是目录就重新调用fileDir ()方法进行递归,如果是文件就直接打印输出文件的路径,这样该目录下的所有文件就被成功遍历出来了。

2File类delete()方法的返回值是【】类型。(答案写中文)

正确答案:

第一空: 

布尔

答案解析:

File类delete()方法的返回值是布尔类型。

3java.io.FileOutputStream是【】的子类,它是操作文件的字节输出流。

正确答案:

第一空: 

OutputStream

答案解析:

文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流,它是OutputStream类的子类。

4IO流有很多种,按照操作数据的不同,可以分为【】和字符流。

正确答案:

第一空: 

字节流

5字节流是程序中最常用的流,根据数据的传输方向可将其分为字节【】和【】。

正确答案:

第一空: 

输入流

第二空: 

输出流

6java.io.FileOutputStream是【】的子类,它是操作文件的字节输出流。

正确答案:

第一空: 

OutputStream

答案解析:

文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流,它是OutputStream类的子类。

7向文件中写入字符需要使用【】类,它是Writer的一个子类。

正确答案:

第一空: 

FileWriter

答案解析:如果要向文件中写入字符就需要使用FileWriter类,FileWriter是Writer的一个子类。

8JDK中提供的两个转换流分别是【】和OutputStreamWriter。

正确答案:

第一空: 

InputStreamReader

答案解析:在JDK中提供了两个类可以将字节流转换为字符流,它们分别是InputStreamReader和OutputStreamWriter。

9向文件中写入字符需要使用【】类,它是Writer的一个子类。

正确答案:

第一空: 

FileWriter

10【】是Reader的子类,它可以将一个字节输入流转换成字符输入流,方便直接读取字符。

正确答案:

第一空: 

InputStreamReader

11IO流通常都是成对出现的,即【】流和输出流一起使用。

正确答案:

第一空: 

输入

答案解析:文件的拷贝就需要通过输入流来读取文件中的数据,通过输出流将数据写入文件。

12IO流通常都是成对出现的,即【】流和【】流一起使用。

正确答案:

第一空: 

输入

第二空: 

输出

13File类中用于删除文件或整个目录的方法是【】。

正确答案:

第一空: 

delete()

14File类中通过指定一个字符串类型的文件路径来创建一个新的File对象的类是【】。

正确答案:

第一空: 

File(String pathname)

15File类delete()方法的返回值是【】类型。(答案写中文)

正确答案:

第一空: 

布尔

16JDK中提供的两个转换流分别是【】和【】。

正确答案:

第一空: 

InputStreamReader

第二空: 

OutputStreamWriter

17字节流缓冲区实际上是一个【】数组。

正确答案:

第一空: 

字节

18File类的API中,用于判断File对象对应的文件或目录是否存在的方法是【】。

正确答案:

第一空: 

exists()

19【】是Writer的子类,它可以将一个字节输出流转换成字符输出流,方便直接写入字符。

正确答案:

第一空: 

OutputStreamWriter

20File类的API中,用于获取File对象表示的文件或文件夹名称的方法是【】。

正确答案:

第一空: 

getName()

答案解析:getName()方法用于返回File对象表示的文件或文件夹的名称。

21字符流也有两个抽象的顶级父类,分别是Reader和【】。

正确答案:

第一空: 

Writer

22java.io包中可以用于从文件中直接读取字符的是【】类。

正确答案:

第一空: 

FileReader

23计算机中,无论是文本、图片、音频还是视频,所有文件都是以【】形式存在的。

正确答案:

第一空: 

二进制

24InputStream类中专门用于读取文件中数据的子类是【】。

正确答案:

第一空: 

FileInputStream

答案解析:FileInputStream是InputStream的子类,它是操作文件的字节输入流,专门用于读取文件中的数据。

25InputStream类中专门用于读取文件中数据的子类是【】。

正确答案:

第一空: 

FileInputStream

答案解析:FileInputStream是InputStream的子类,它是操作文件的字节输入流,专门用于读取文件中的数据。

26File类的API中,用于返回File对象表示的文件或文件夹的名称的方法是【】。

正确答案:

第一空: 

getName()

27字符流也有两个抽象的顶级父类,分别是Reader和【】。

正确答案:

第一空: 

Writer

28字节流缓冲区实际上是一个【】数组。

正确答案:

第一空: 

字节

四.判断题(共28题,34.3分)

1FileOutputStream是操作文件的字节输入流,专门读取文件数据。

正确答案:×

2针对文件的读写,JDK专门提供了两个类,分别是FileInputStream和FileOutputStream。

正确答案:√

3BufferedReader和BufferedWriter是具有缓冲功能的流,使用它们可以提高读写效率。

正确答案:√

4FileOutputStream是操作文件的字节输出流,专门用于把数据写入文件。

正确答案:√

5FileReader字符输入流可以用于从文件中直接读取字符。

正确答案:√

答案解析:从文件中直接读取字符便可以使用字符输入流FileReader,通过此流可以从关联的文件中读取一个或一组字符。

6文件的拷贝是指读取一个文件中的数据并将这些数据写入到另一个文件中。

正确答案:√

7FileReader字符输入流可以用于从文件中直接读取字符。

正确答案:√

答案解析:从文件中直接读取字符便可以使用字符输入流FileReader,通过此流可以从关联的文件中读取一个或一组字符。

8FileWriter用于向文件中写入字符,它属于字符输出流。

正确答案:√

9字节流只能用来读写二进制文件。

正确答案:×

答案解析:字节流不仅可以读写二进制文件,还能读写文本文件。

10FileReader可以用于向文本文件中写入字符流。

正确答案:×

答案解析:想从文件中直接读取字符便可以使用字符输入流FileReader,通过此流可以从关联的文件中读取一个或一组字符。

11File对象的list()方法返回一个字符串数组。

正确答案:√

答案解析:File对象的list()方法列出指定目录的全部内容,只是列出了名称。

12如果File对象表示的目录下有文件或者子目录,调用delete()方法可以将其直接删除。

正确答案:×

答案解析:使用delete()方法删除带文件的目录时,需要先将目录中的文件全部删除。

13InputStreamReader转化流转换图片时会造成数据的丢失。

正确答案:√

答案解析:InputStreamReader转化流对二进制文本进行转换操作时会造成数据的丢失。

14针对文件的读取,JDK专门提供了FileInputStream。

正确答案:√

15在java语言中使用IO流进行文件的拷贝时可能会出现IO异常,必须对异常进行try{}catch(){}处理或者抛出异常。

正确答案:√

答案解析:对文件的操作,经常会遇到各种IO异常,例如FileNotFoundException、EOFException等。

16字节缓冲流指的是BufferedInputStream和BufferdOutputStream。

正确答案:√

17使用字节流缓冲区读取数据相对一个字节一个字节的读取操作效率更低。

正确答案:×

答案解析:使用字节流缓冲区读取数据相对一个字节一个字节的读取操作效率更高。

18File对象的list()方法返回一个字符串数组。

正确答案:√

答案解析:File对象的list()方法列出指定目录的全部内容,只是列出了名称。

19转换流实现了字节流和字符流之间的互相转换。

正确答案:√

20File类内部封装的路径可以指向一个文件,也可以指向一个目录。

正确答案:√

21File类可以用于封装一个绝对路径或相对路径。

正确答案:√

答案解析:File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,如:D:\file\a.txt,也可以是相对于当前目录而言的相对路径,如:src\Hello.java。

22字节流的缓冲区就是使用一个字节数组存放多个字节进行读写操作。

正确答案:√

23BufferedInputStream和BufferdOutputStream都是带缓冲区的字节流。

正确答案:√

24在java语言中使用IO流进行文件的拷贝时可能会出现IO异常,必须对异常进行try{}catch(){}处理或者抛出异常。

正确答案:√

答案解析:对文件的操作,经常会遇到各种IO异常,例如FileNotFoundException、EOFException等。

25InputStreamReader转化流转换图片时会造成数据的丢失。

正确答案:√

答案解析:InputStreamReader转化流对二进制文本进行转换操作时会造成数据的丢失。

26File类可以用于封装一个绝对路径或相对路径。

正确答案:√

答案解析:File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,如:D:\file\a.txt,也可以是相对于当前目录而言的相对路径,如:src\Hello.java。

27File类中的list()方法用于得到所有子目录下的File类型对象。

正确答案:×

答案解析:list()方法只能遍历目录下文件的文件名,不能得到子目录下的File类型对象。

28在操作文件时,如果需要删除整个目录,只需File类的delete()方法直接删除目录即可。

正确答案:×

答案解析:File类的delete()方法只是删除一个指定的文件,假如File对象代表目录,并且目录下包含子目录或文件,则File类的delete()方法不允许对这个目录直接删除。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有