Java IO 流练习题解析

需积分: 10 1 下载量 146 浏览量 更新于2024-09-13 收藏 4KB TXT 举报
"这是一份关于Java IO输入流的练习题集,旨在帮助Java程序员巩固和提高对输入流的理解和应用。" 1. Java中的`File`类是用于操作文件和目录的基础类,它并不直接处理文件内容的读写。选项分析如下: - A. `File`对象可以表示系统中的一个文件或目录路径,但不保证该路径对应的实际文件或目录存在。 - B. 使用`File`删除文件或目录,但实际删除操作取决于操作系统的支持。 - C. 同B,`File`可以尝试删除文件或目录,但成功与否依赖于文件状态和权限。 - D. 创建一个`File`对象并不会自动在系统中创建一个新的文件或目录。 2. 在这段代码中,`new File("chp13/corejava.txt")`仅创建了一个`File`对象,表示路径"chp13/corejava.txt"。选项分析如下: - A. 此时,"corejava.txt"文件可能不存在于系统中,因为代码没有执行任何创建或读取操作。 - B. 文件路径与操作系统有关,但这段代码本身不会检查操作系统类型。 - C. 如果"corejava.txt"确实存在于"chp13"目录下,那么此选项正确。 - D. 这段代码不会抛出异常,除非指定的路径无效或访问权限受限。 3. `File`类的`exists()`方法用于判断文件或目录是否存在。如果文件存在,`getAbsolutePath()`返回文件的完整绝对路径。示例代码中,如果`hello.txt`存在,程序将打印出其绝对路径。 4. `FileInputStream`是Java IO中的基础输入流类,用于读取字节数据。关于它的特性: - 它是字节流,用于处理二进制数据,如图片、音频、文本等。 - 它是未缓冲的,意味着每次读取都直接从底层操作系统获取数据。 - 它是连接到一个特定文件的,通过构造函数传递文件路径来实例化。 5. `FileInputStream`的`read()`方法详解: - 1) `read()`方法如果没有读到任何数据,会返回-1,表示已到达流的末尾。 - 2) `read(byte[] bs)`读取数据到字节数组`bs`中,返回值表示实际读取的字节数,可能小于数组长度。 - 3) `read(byte[] bs, int offset, int len)`同样读取数据到字节数组`bs`,但可以从指定的偏移量`offset`开始,并尝试读取`len`个字节。返回值表示实际读取的字节数。 6. `FileInputStream`是不可见的,即它不包含在类的可见性范围内,可能是由于拼写错误或者被省略了后面的类名。正确写法应该是`FileInputStream fis = new FileInputStream("path");` 以上是对输入流相关知识点的详细解释,这些内容涵盖了`File`类的基本操作以及`FileInputStream`的使用方法。在学习和解答这些练习题时,应理解Java IO体系结构,熟悉字节流和字符流的区别,以及如何处理文件和目录的生命周期。