第九次作业 I/O(输入/输出)
选择题
-
A、File(Stringparent,Filechild)
-
B、File(Stringparent,Stringchild)
-
C、File(Stringpathname)
-
D、File(Fileparent,Stringchild)
参考答案 :A
答案说明 :查看API可知A选项的格式错误,不能通过String类型父路径和File类型子路径构建一个完整的文件路径实例。
-
A、read()
-
B、 close()
-
C、readLine()
-
D、toString()
参考答案 :C
答案说明 :FileReader类中的read()和close()方法继承自 InputStreamReader,toString()继承自Object类。
-
A、判断该File对象所对应的是否是文件。
-
B、判断该File对象所对应的是否是目录。
-
C、返回文件的最后修改时间。
-
D、在当前目录下生成指定的目录。
参考答案 :B
答案说明 :isDirectory()方法用于判断File对象是否为文件夹,返回值为boolean类型。
-
A、DataInputStream
-
B、 FileOutputStream
-
C、BufferedInputStream
-
D、FileReader
参考答案 :C
答案说明 :BufferedInputStream带缓冲的字节输入流,使用了缓冲区技术。 FileOutputStream、DataInputStream和 FileReader 都没有使用缓冲区技术。
① 将字节流输入流和源文件相关联,输出流和目标文件相关联。 ② 明确源文件和目标文件。 ③ 使用输入流的读取方法读取文件,并将字节写入到目标文件中。 ④ 关闭资源。
-
A、①②③④
-
B、 ②①③④
-
C、②③①④
-
D、①③②④
-
A、0
-
B、-1
-
C、1
-
D、无返回值
-
A、void write(byte[] b)
-
B、void write(int b)
-
C、void flush()
-
D、void close()
-
A、File
-
B、FileOutput
-
C、OutputStream
-
D、InputStream
class Example { 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、false文件夹删除不成功,abc.txt删除成功
-
C、true文件夹删除成功
-
D、true文件夹删除不成功,abc.txt删除成功
参考答案 :A
答案说明 :运行结果中输出了false,这说明删除文件失败了。因为File类的delete()方法只是删除一个指定的文件,假如File对象代表目录,并且目录下包含子目录或文件,则File类的delete()方法不允许对这个目录直接删除。
判断题
- √
- √
- √
参考答案 :
答案说明 :InputStreamReader转化流对二进制文本进行转换操作时会造成数据的丢失。
- √
参考答案 :对
答案说明 :对文件的操作,经常会遇到各种IO异常,例如FileNotFoundException、EOFException等。
- √
参考答案 :对
答案说明 :从文件中直接读取字符便可以使用字符输入流FileReader,通过此流可以从关联的文件中读取一个或一组字符。
- √
参考答案 :对
答案说明 :File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,如:D:\file\a.txt,也可以是相对于当前目录而言的相对路径,如:src\Hello.java。
- √
参考答案 :对
答案说明 :File对象的list()方法列出指定目录的全部内容,只是列出了名称。
填空题
参考答案 :【FileInputStream】
答案说明 :FileInputStream是InputStream的子类,它是操作文件的字节输入流,专门用于读取文件中的数据。
参考答案 :【OutputStream】
答案说明 :文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流,它是OutputStream类的子类。
简答题
我的答案:
参考答案 :
import java.io.*; public class FileReaderDemo{ public static void main(String[] args) throws Exception { // 创建一个FileReader对象用来读取文件中的字符 FileReader reader = new FileReader("reader.txt"); int ch; // 定义一个变量用于记录读取的字符 while ((ch = reader.read()) != -1) { // 循环判断是否读取到文件的末尾 System.out.println((char) ch); // 不是字符流末尾就转为字符打印 } reader.close(); // 关闭文件读取流","释放资源 } }
答案说明 :
无
我的答案:
参考答案 :
import java.io.*; public class Example01 { public static void main(String[] args) throws Exception { // 创建一个带缓冲区的输入流 BufferedInputStream bis = new BufferedInputStream( new FileInputStream("src.txt")); // 创建一个带缓冲区的输出流 BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream("des.txt")); int len; while ((len = bis.read()) != -1) { bos.write(len); } bis.close(); bos.close(); } }
答案说明 :
无