18.File类

File类

1.File类的作用

在java程序中,对磁盘文件进行描述的类。文件和目录路径名的抽象表示形式。

2.File类的常用构造方法

在这里插入图片描述

3.File类文件方法

boolean exists() 测试此抽象路径名表示的文件或目录是否存在
boolean createNewFile()当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建个新的空文件
String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
String getName() 返回由此抽象路径名表示的文件或目录的名称
String getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null
boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录
boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件
String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录
File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件


例一:

import java.io.File;

public class FileDemo {
	public static void main(String[] args) {
		File file = new File("F:\\abc.cui");//创建文件
		boolean isExist = file.exists();
		//checked异常,必须做异常处理
		try {
			if (isExist==false) {
				boolean isSuccess = file.createNewFile();
				if (isSuccess) {
					System.out.println("文件创建成功!");
					System.out.println("能否被执行?"+file.canExecute());
					System.out.println("能否读取?"+file.canRead());
					System.out.println("能否写入?"+file.canWrite());
				}else {
					System.out.println("文件创建失败!");
				}
			}else {
				System.out.println("文件已经存在!");
			}
		}catch (Exception e) {
			e.printStackTrace();
		}
		
	}
}

例二:

package cn.cc.io;

import java.io.File;

public class FileDemo2 {

	public static void main(String[] args) {
		File file = new File("F:\\abc.cui");
		FileDemo2 fd = new FileDemo2();
		if (file.exists()) {
			//绝对路径
			System.out.println(file.getAbsolutePath());
			//文件名
			System.out.println(file.getName());
			//文件大小,字节为单位
			System.out.println(file.length());
			//调用截取方法
			String exString = fd.fun(file.getName());
			System.out.println("文件扩展名:"+exString);
			
		}else {
			System.out.println("不存在");
		}
		//删除文件
		boolean isDelete = file.delete();
		if (isDelete) {
			System.out.println("删除成功!");
		}
	}
	//获取文件扩展名
	 public String fun(String name) {
		int index = name.lastIndexOf(".");
		String exString = name.substring(index+1);
		return exString;
	}

}
以下代码片段中,使用了哪个模式将新内容写入文件,并保留文件中原有的内容?  1 with open("data.txt", "___") as file: 2 file.write("新内容") 放大 全屏 复制 undefined A. a undefined B. w undefined C. r undefined D. rb  2-2 分数 2 作者 李爽 单位 浙江大学 在读取文件时,以下代码可以返回文件中的哪一部分内容?  1 with open("example.txt", "r") as file: 2 content = file.readline() 放大 全屏 复制 undefined A. 全部内容 undefined B. 文件的最后一行 undefined C. 文件的前两行 undefined D. 文件的第一行  2-3 分数 2 作者 李爽 单位 浙江大学 要以二进制模式读取图片文件,以下代码片段中应使用的模式是什么?  1 with open("image.png", "___") as file: 2 data = file.read() 放大 全屏 复制 undefined A. w undefined B. r undefined C. rb undefined D. a  2-4 分数 2 作者 李爽 单位 浙江大学 在以下代码片段中,如果文件“sample.txt”不存在,将会发生什么情况?  1 with open("sample.txt", "r") as file: 2 data = file.read() 放大 全屏 复制 undefined A. 创建一个新文件 undefined B. 直接返回空字符串 undefined C. 跳过并继续运行 undefined D. 抛出FileNotFoundError错误  2-5 分数 2 作者 李爽 单位 浙江大学 以下代码片段中,哪个选项适合将数据追加到文件末尾?  1 with open("log.txt", "___") as file: 2 file.write("追加内容") 放大 全屏 复制 undefined A. w undefined B. a undefined C. r+ undefined D. rb  2-6 分数 2 作者 李爽 单位 浙江大学 如果需要将列表中的每个元素逐行写入文件“list.txt”,以下代码片段中哪一行代码应被替换为正确的写入方法?  1 data = ["苹果", "香蕉", "橙子" ] 2 3 with open("list.txt", "w") as file: 4 for item in data: 5 ___ 收起 放大 全屏 复制 undefined A. file.read(item) undefined B. file.write(item + "\n") undefined C. file.readlines(item) undefined D. file.write_lines(item)  2-7 分数 2 作者 李爽 单位 浙江大学 以下代码将文件内容读取到变量中,哪个选项最合适用于关闭文件?  1 file = open("text.txt", "r" ) 2 data = file.read() 3 ___ 放大 全屏 复制 undefined A. file.close() undefined B. file.write() undefined C. file.read() undefined D. file.readline()  2-8 分数 2 作者 李爽 单位 浙江大学 在以下代码中,file.write()的调用将会返回什么值?  1 with open("output.txt", "w") as file: 2 result = file.write("Hello, World!" ) 3 print(result) 放大 全屏 复制 undefined A. "Hello, World!" undefined B. 文件名 undefined C. None undefined D. 写入的字符数  2-9 分数 2 作者 李爽 单位 浙江大学 使用以下代码从文件中读取每一行,并存储到列表中。哪个选项正确?  1 with open("data.txt", "r") as file: 2 lines = ___ 放大 全屏 复制 undefined A. file.readline() undefined B. file.read() undefined C. file.readlines() undefined D. file.write()  2-10 分数 2 作者 李爽 单位 浙江大学 以下代码片段尝试打开文件并读取其中数据。为了确保文件始终被关闭,应该添加哪种结构?  1 file = open("example.txt", "r" ) 2 data = file.read() 3 ___ 放大 全屏 复制 undefined A. file.flush() undefined B. try...finally undefined C. file.write() undefined D. file.close()  2-11 分数 3 作者 李爽 单位 浙江大学 以下代码片段用于打开一个只读文件并获取行数。哪个方法最合适?  1 with open("data.txt", "r") as file: 2 lines = file.readlines() 3 print(f"文件行数: {len(___)}") 放大 全屏 复制 undefined A. lines undefined B. file undefined C. file.readlines() undefined D. file.read()  2-12 分数 2 作者 课程组-sr 单位 浙江大学 调用对象方法时,self参数需要显式传递吗? undefined A. 是 undefined B. 否 undefined C. 取决于方法的型 undefined D. 取决于Python版本  2-13 分数 2 作者 课程组-sr 单位 浙江大学 访问修改对象属性时,需要以什么为前缀? undefined A. 名 undefined B. 方法名 undefined C. self undefined D. @符号  2-14 分数 2 作者 课程组-sr 单位 浙江大学 将数据对数据的操作组合起来构成,属于面向对象的哪个特性? undefined A. 封装 undefined B. 继承 undefined C. 多态 undefined D. 实例化  2-15 分数 2 作者 课程组-sr 单位 浙江大学 从一个通用扩展更多特定的,实现代码重用,属于面向对象的哪个特性? undefined A. 封装 undefined B. 继承 undefined C. 多态 undefined D. 实例化  2-16 分数 2 作者 课程组-sr 单位 浙江大学 可以对不同型的对象进行相同的操作,并可以正常运行,提高程序灵活性,属于面向对象的哪个特性? undefined A. 封装 undefined B. 继承 undefined C. 多态 undefined D. 实例化  2-17 分数 2 作者 课程组-sr 单位 浙江大学 用于存储级别的数据,所有实例共享的变量是? undefined A. 属性 undefined B. 实例属性 undefined C. 局部变量 undefined D. 全局变量  2-18 分数 2 作者 课程组-sr 单位 浙江大学 方法使用哪个装饰器定义? undefined A. @staticmethod undefined B. @classmethod undefined C. @property undefined D. @method  2-19 分数 2 作者 课程组-sr 单位 浙江大学 方法的第一个参数通常用什么表示本身? undefined A. self undefined B. instance undefined C. obj undefined D. cls  2-20 分数 2 作者 课程组-sr 单位 浙江大学 静态方法使用哪个装饰器定义? undefined A. @staticmethod undefined B. @classmethod undefined C. @property undefined D. @method  2-21 分数 2 作者 课程组-sr 单位 浙江大学 静态方法接收selfcls作为第一个参数吗? undefined A. 是 undefined B. 否 undefined C. 取决于方法的名称 undefined D. 取决于参数的数量  2-22 分数 2 作者 课程组-sr 单位 浙江大学 在Python中,用于定义的关键字是什么? undefined A. define undefined B. func undefined C. class undefined D. method  2-23 分数 2 作者 课程组-sr 单位 浙江大学 当创建的对象时,会自动调用哪个方法进行初始化? undefined A. __del__ 放大 全屏 复制 undefined B. __init__ 放大 全屏 复制 undefined C. __str__ 放大 全屏 复制 undefined D. __repr__ 放大 全屏 复制  2-24 分数 2 作者 课程组-sr 单位 浙江大学 在的方法定义中,第一个参数self用于引用什么? undefined A. 当前创建的对象 undefined B. 本身 undefined C. undefined D. 模块  2-25 分数 2 作者 课程组-sr 单位 浙江大学 对象属性也可以被称为? undefined A. 方法 undefined B. 静态方法 undefined C. 局部变量 undefined D. 成员变量  2-26 分数 2 作者 课程组-sr 单位 浙江大学 对象方法本质上是什么? undefined A. 定义在中的一种函数 undefined B. 独立的程序块 undefined C. 级别的变量 undefined D. 对象的属性
最新发布
12-26
题目重述 以下代码片段中,使用了哪个模式将新内容写入文件,并保留文件中原有的内容? ```python with open("data.txt", "___") as file: file.write("新内容") ``` 选项: A. a B. w C. r D. rb 详解 要将新内容写入文件并保留原有内容,必须使用**追加模式**。在Python中,`"a"` 模式以追加方式打开文件,写入的内容会添加到文件末尾,不会覆盖原内容。而 `"w"` 会清空文件,`"r"` 只读不可写,`"rb"` 是二进制只读模式。 正确答案是:**A. a** --- 题目重述 在读取文件时,以下代码可以返回文件中的哪一部分内容? ```python with open("example.txt", "r") as file: content = file.readline() ``` 选项: A. 全部内容 B. 文件的最后一行 C. 文件的前两行 D. 文件的第一行 详解 `file.readline()` 方法从文件中读取**一行**内容,即从当前位置读取直到遇到换行符为止。首次调用时读取第一行。 正确答案是:**D. 文件的第一行** --- 题目重述 要以二进制模式读取图片文件,以下代码片段中应使用的模式是什么? ```python with open("image.png", "___") as file: data = file.read() ``` 选项: A. w B. r C. rb D. a 详解 读取图片等非文本文件需使用**二进制模式**。`"rb"` 表示以二进制只读模式打开文件,适用于图像、音频等文件型。 正确答案是:**C. rb** --- 题目重述 如果文件“sample.txt”不存在,使用以下代码会发生什么情况? ```python with open("sample.txt", "r") as file: data = file.read() ``` 选项: A. 创建一个新文件 B. 直接返回空字符串 C. 跳过并继续运行 D. 抛出FileNotFoundError错误 详解 当以 `"r"` 模式打开一个不存在的文件时,Python 会抛出 `FileNotFoundError` 错误,因为该模式要求文件必须存在。 正确答案是:**D. 抛出FileNotFoundError错误** --- 题目重述 以下代码片段中,哪个选项适合将数据追加到文件末尾? ```python with open("log.txt", "___") as file: file.write("追加内容") ``` 选项: A. w B. a C. r+ D. rb 详解 `"a"` 模式专门用于追加写入,无论文件是否存在,都会将内容写入末尾。`"w"` 会覆盖原内容,`"r+"` 可读可写但起始位置不确定是否追加,`"rb"` 是二进制模式不适合纯文本追加。 正确答案是:**B. a** --- 题目重述 如果需要将列表中的每个元素逐行写入文件“list.txt”,以下哪一行代码应被替换为正确的写入方法? ```python data = ["苹果", "香蕉", "橙子"] with open("list.txt", "w") as file: for item in data: ___ ``` 选项: A. file.read(item) B. file.write(item + "\n") C. file.readlines(item) D. file.write_lines(item) 详解 `file.write()` 是唯一合法的写入方法,且需手动添加换行符 `\n` 实现逐行写入。其他选项如 `read`, `readlines`, `write_lines` 均语法错误不存在。 正确答案是:**B. file.write(item + "\n")** --- 题目重述 以下代码将文件内容读取到变量中,哪个选项最合适用于关闭文件? ```python file = open("text.txt", "r") data = file.read() ___ ``` 选项: A. file.close() B. file.write() C. file.read() D. file.readline() 详解 显式打开文件后必须调用 `file.close()` 手动关闭,否则会造成资源泄露。虽然 `with` 语句可自动关闭,但此处未使用。 正确答案是:**A. file.close()** --- 题目重述 在以下代码中,`file.write()` 的调用将会返回什么值? ```python with open("output.txt", "w") as file: result = file.write("Hello, World!") print(result) ``` 选项: A. "Hello, World!" B. 文件名 C. None D. 写入的字符数 详解 `file.write()` 返回值是实际写入的字符数量。字符串 `"Hello, World!"` 共13个字符(含逗号空格),故返回 `13`。 正确答案是:**D. 写入的字符数** --- 题目重述 使用以下代码从文件中读取每一行,并存储到列表中。哪个选项正确? ```python with open("data.txt", "r") as file: lines = ___ ``` 选项: A. file.readline() B. file.read() C. file.readlines() D. file.write() 详解 `file.readlines()` 将文件每行作为元素返回一个列表,包含换行符。`readline()` 只读一行,`read()` 返回整个字符串,`write()` 不可用于读取。 正确答案是:**C. file.readlines()** --- 题目重述 为了确保文件始终被关闭,应该添加哪种结构? ```python file = open("example.txt", "r") data = file.read() ___ ``` 选项: A. file.flush() B. try...finally C. file.write() D. file.close() 详解 使用 `try...finally` 可确保无论是否发生异常,`finally` 块中的 `file.close()` 都会被执行,从而安全释放资源。 正确答案是:**B. try...finally** --- 题目重述 以下代码用于获取文件行数,哪个表达式最合适填入 `len(___ )`? ```python with open("data.txt", "r") as file: lines = file.readlines() print(f"文件行数: {len(___)}") ``` 选项: A. lines B. file C. file.readlines() D. file.read() 详解 `lines` 已经是通过 `readlines()` 获取的列表,直接对其求长度即可得到行数。重复调用 `readlines()` 会读取空内容。 正确答案是:**A. lines** --- 题目重述 调用对象方法时,`self` 参数需要显式传递吗? 选项: A. 是 B. 否 C. 取决于方法的型 D. 取决于Python版本 详解 在调用实例方法时,`self` 由解释器自动传入,用户无需显式传递。这是Python面向对象的基本机制。 正确答案是:**B. 否** --- 题目重述 访问修改对象属性时,需要以什么为前缀? 选项: A. 名 B. 方法名 C. self D. @符号 详解 在的方法内部,通过 `self.属性名` 访问修改当前实例的属性,`self` 引用当前对象。 正确答案是:**C. self** --- 题目重述 将数据对数据的操作组合起来构成,属于面向对象的哪个特性? 选项: A. 封装 B. 继承 C. 多态 D. 实例化 详解 封装是指将数据(属性)操作(方法)绑定在一起,并隐藏内部实现细节。 正确答案是:**A. 封装** --- 题目重述 从一个通用扩展更多特定的,实现代码重用,属于面向对象的哪个特性? 选项: A. 封装 B. 继承 C. 多态 D. 实例化 详解 继承允许子复用父的属性方法,并可扩展修改行为,提升代码复用性。 正确答案是:**B. 继承** --- 题目重述 可以对不同型的对象进行相同的操作,并可以正常运行,提高程序灵活性,属于面向对象的哪个特性? 选项: A. 封装 B. 继承 C. 多态 D. 实例化 详解 多态指同一接口适用于不同数据型,使代码更灵活、可扩展。 正确答案是:**C. 多态** --- 题目重述 用于存储级别的数据,所有实例共享的变量是? 选项: A. 属性 B. 实例属性 C. 局部变量 D. 全局变量 详解 属性定义在中、方法外,被所有实例共享,改变会影响全部实例。 正确答案是:**A. 属性** --- 题目重述 方法使用哪个装饰器定义? 选项: A. @staticmethod B. @classmethod C. @property D. @method 详解 `@classmethod` 用于定义方法,其第一个参数为 `cls`,表示本身。 正确答案是:**B. @classmethod** --- 题目重述 方法的第一个参数通常用什么表示本身? 选项: A. self B. instance C. obj D. cls 详解 `cls` 是约定俗成的方法第一个参数名称,代表本身;`self` 用于实例方法。 正确答案是:**D. cls** --- 题目重述 静态方法使用哪个装饰器定义? 选项: A. @staticmethod B. @classmethod C. @property D. @method 详解 `@staticmethod` 定义静态方法,不接收 `self` `cls`,逻辑上与相关但不依赖实例状态。 正确答案是:**A. @staticmethod** --- 题目重述 静态方法接收 `self` `cls` 作为第一个参数吗? 选项: A. 是 B. 否 C. 取决于方法的名称 D. 取决于参数的数量 详解 静态方法不隐式传递 `self` `cls`,它就像普通函数,只是放在中组织代码。 正确答案是:**B. 否** --- 题目重述 在Python中,用于定义的关键字是什么? 选项: A. define B. func C. class D. method 详解 `class` 是Python中定义的关键字,后跟冒号。 正确答案是:**C. class** --- 题目重述 当创建的对象时,会自动调用哪个方法进行初始化? 选项: A. `__del__` B. `__init__` C. `__str__` D. `__repr__` 详解 `__init__` 方法在对象创建后立即调用,用于初始化实例属性。 正确答案是:**B. `__init__`** --- 题目重述 在的方法定义中,第一个参数 `self` 用于引用什么? 选项: A. 当前创建的对象 B. 本身 C. D. 模块 详解 `self` 引用调用该方法的**实例对象**,使得方法可以访问修改对象的数据。 正确答案是:**A. 当前创建的对象** --- 题目重述 对象属性也可以被称为? 选项: A. 方法 B. 静态方法 C. 局部变量 D. 成员变量 详解 对象属性即实例属性,也称成员变量,属于某个具体对象的数据。 正确答案是:**D. 成员变量** --- 题目重述 对象方法本质上是什么? 选项: A. 定义在中的一种函数 B. 独立的程序块 C. 级别的变量 D. 对象的属性 详解 对象方法是在中定义的函数,用于描述对象的行为,通过实例调用。 正确答案是:**A. 定义在中的一种函数** --- ### 知识点 - **文件操作模式**:`a` 追加,`w` 覆盖写,`r` 只读,`rb` 二进制读,决定文件如何打开。 - **文件读写方法**:`read()` 全文读取,`readline()` 读一行,`readlines()` 读所有行列表,`write()` 写入并返回字符数。 - **面向对象基础**:`self` 指实例,`cls` 指,`@classmethod` `@staticmethod` 区分方法与静态方法。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值