- python中eof表示什么语句错误
- python中for语句涉及的序列
- python中if是循环语句吗
- python中if语句与或非
在
Java 中,
File 类是 java.io 包中唯一代表磁盘文件本身的对象,也就是说,如果希望在程序中操作文件和目录,则都可以通过 File 类来完成。File 类定义了一些方法来操作文件,如新建、删除、重命名文件和目录等。
File 类不能访问文件内容本身,如果需要访问文件内容本身,则需要使用输入/输出流。
File 类提供了如下三种形式构造方法。
方法名称 | 说明 |
---|---|
boolean canRead() | 测试应用程序是否能从指定的文件中进行读取 |
boolean canWrite() | 测试应用程序是否能写当前文件 |
boolean delete() | 删除当前对象指定的文件 |
boolean exists() | 测试当前 File 是否存在 |
String getAbsolutePath() | 返回由该对象表示的文件的绝对路径名 |
String getName() | 返回表示当前对象的文件名或路径名(如果是路径,则返回最后一级子路径名) |
String getParent() | 返回当前 File 对象所对应目录(最后一级子目录)的父目录名 |
boolean isAbsolute() | 测试当前 File 对象表示的文件是否为一个绝对路径名。该方法消除了不同平台的差异,可以直接判断 file 对象是否为绝对路径。在 UNIX/Linux/BSD 等系统上,如果路径名开头是一条斜线/ ,则表明该 File 对象对应一个绝对路径;在 Windows 等系统上,如果路径开头是盘符,则说明它是一个绝对路径。 |
boolean isDirectory() | 测试当前 File 对象表示的文件是否为一个路径 |
boolean isFile() | 测试当前 File 对象表示的文件是否为一个“普通”文件 |
long lastModified() | 返回当前 File 对象表示的文件最后修改的时间 |
long length() | 返回当前 File 对象表示的文件长度 |
String[] list() | 返回当前 File 对象指定的路径文件列表 |
String[] list(FilenameFilter) | 返回当前 File 对象指定的目录中满足指定过滤器的文件列表 |
boolean mkdir() | 创建一个目录,它的路径名由当前 File 对象指定 |
boolean mkdirs() | 创建一个目录,它的路径名由当前 File 对象指定 |
boolean renameTo(File) | 将当前 File 对象指定的文件更名为给定参数 File 指定的路径名 |
;
。例如 java -cp test.jar;abc.jar HelloWorld
。/
。例如 C:/Program Files/Common Files
。假设在 Windows 操作系统中有一文件Windows 的路径分隔符使用反斜线“\”,而 Java 程序中的反斜线表示转义字符,所以如果需要在 Windows 的路径下包括反斜线,则应该使用两条反斜线或直接使用斜线“/”也可以。Java 程序支持将斜线当成平台无关的路径分隔符。
D:\javaspace\hello.java
,在 Java 中使用的时候,其路径的写法应该为
D:/javaspace/hello.java
或者
D:\\javaspace\\hello.java
。
C:\windows\notepad.exe
。编写 Java 程序获取并显示该文件的长度、是否可写、最后修改日期以及文件路径等属性信息。实现代码如下:
public class Test02 { public static void main(String[] args) { String path = "C:/windows/"; // 指定文件所在的目录 File f = new File(path, "notepad.exe"); // 建立File变量,并设定由f变量引用 System.out.println("C:\\windows\\notepad.exe文件信息如下:"); System.out.println("============================================"); System.out.println("文件长度:" + f.length() + "字节"); System.out.println("文件或者目录:" + (f.isFile() ? "是文件" : "不是文件")); System.out.println("文件或者目录:" + (f.isDirectory() ? "是目录" : "不是目录")); System.out.println("是否可读:" + (f.canRead() ? "可读取" : "不可读取")); System.out.println("是否可写:" + (f.canWrite() ? "可写入" : "不可写入")); System.out.println("是否隐藏:" + (f.isHidden() ? "是隐藏文件" : "不是隐藏文件")); System.out.println("最后修改日期:" + new Date(f.lastModified())); System.out.println("文件名称:" + f.getName()); System.out.println("文件路径:" + f.getPath()); System.out.println("绝对路径:" + f.getAbsolutePath()); } }在上述代码中 File 类构造方法的第一个参数指定文件所在位置,这里使用
C:/
作为文件的实际路径;第二个参数指定文件名称。创建的 File 类对象为 f,然后通过 f 调用方法获取相应的属性,最终运行效果如下所示。
C:\windows\notepad.exe文件信息如下: ============================================ 文件长度:193536字节 文件或者目录:是文件 文件或者目录:不是目录 是否可读:可读取 是否可写:可写入 是否隐藏:不是隐藏文件 最后修改日期:Mon Dec 28 02:55:19 CST 2016 文件名称:notepad.exe 文件路径:C:\windows\notepad.exe 绝对路径:C:\windows\notepad.exe
public class Test03 { public static void main(String[] args) throws IOException { File f = new File("C:\\test.txt"); // 创建指向文件的File对象 if (f.exists()) // 判断文件是否存在 { f.delete(); // 存在则先删除 } f.createNewFile(); // 再创建 } }运行程序之后可以发现,在 C 盘中已经创建好了 test.txt 文件。但是如果在不同的操作系统中,路径的分隔符是不一样的,例如:
\
表示目录的分隔符。/
表示目录的分隔符。public static void main(String[] args) throws IOException { String path = "C:" + File.separator + "test.txt"; // 拼凑出可以适应操作系统的路径 File f = new File(path); if (f.exists()) // 判断文件是否存在 { f.delete(); // 存在则先删除 } f.createNewFile(); // 再创建 }程序的运行结果和前面程序一样,但是此时的程序可以在任意的操作系统中使用。
public class Test04 { public static void main(String[] args) { String path = "C:/config/"; // 指定目录位置 File f = new File(path); // 创建File对象 if (f.exists()) { f.delete(); } f.mkdir(); // 创建目录 } }
public class Test05 { public static void main(String[] args) { File f = new File("C:/"); // 建立File变量,并设定由f变量变数引用 System.out.println("文件名称\t\t文件类型\t\t文件大小"); System.out.println("==================================================="); String fileList[] = f.list(); // 调用不带参数的list()方法 for (int i = 0; i < fileList.length; i++) { // 遍历返回的字符数组 System.out.print(fileList[i] + "\t\t"); System.out.print((new File("C:/", fileList[i])).isFile() ? "文件" + "\t\t" : "文件夹" + "\t\t"); System.out.println((new File("C:/", fileList[i])).length() + "字节"); } } }
文件名称 文件类型 文件大小 =================================================== $Recycle.Bin 文件夹 4096字节 Documents and Settings 文件夹 0字节 Download 文件夹 0字节 DRIVERS 文件夹 0字节 FibocomLog 文件夹 0字节 Gateface 文件夹 0字节 GFPageCache 文件夹 0字节 hiberfil.sys 文件 3375026176字节 Intel 文件夹 0字节 KuGou 文件夹 0字节 logs 文件夹 0字节 msdia80.dll 文件 904704字节 MSOCache 文件夹 0字节 MyDownloads 文件夹 0字节 MyDrivers 文件夹 0字节 news.template 文件 417字节 NVIDIA 文件夹 0字节 OneDriveTemp 文件夹 0字节 opt 文件夹 0字节 pagefile.sys 文件 6442450944字节 PerfLogs 文件夹 0字节 Program Files 文件夹 12288字节 Program Files (x86) 文件夹 8192字节 ProgramData 文件夹 12288字节 QMDownload 文件夹 0字节 Recovery 文件夹 0字节 swapfile.sys 文件 268435456字节 System Volume Information 文件夹 12288字节 Users 文件夹 4096字节 Windows 文件夹 16384字节
java.io.FilenameFilter
接口,并在 accept() 方法中指定允许的文件类型。
public class ImageFilter implements FilenameFilter { // 实现 FilenameFilter 接口 @Override public boolean accept(File dir, String name) { // 指定允许的文件类型 return name.endsWith(".sys") || name.endsWith(".txt") || name.endsWith(".bak"); } }上述代码创建的过滤器名称为 ImageFilter,接下来只需要将该名称传递给 list() 方法即可实现筛选文件。如下所示为修改后的 list() 方法,其他代码与例 4 相同,这里不再重复。
String fileList[] = f.list(new ImageFilter());
文件名称 文件类型 文件大小 =================================================== offline_FtnInfo.txt 文件 296字节 pagefile.sys 文件 8436592640字节
vue3 快速入门系列 - 基础 前面我们已经用 vue2 和 react 做过开发了。 从 vue2 升级到 vue3 成本较大,特别是较大的项目。所以许多公司对旧项目继续使用vue2,新项目则
C# 基础 C#项目创建 这里注意win10虚拟机需要更新下补丁,不然直接下载visual studio 2022会显示版本不支持 HelloWorld C#的类文件都是以.cs结尾,入口方法为sta
关于 iPhone 内存管理的非常基本的问题: 假设我有一个 viewController,其中有几个 subview 也由 viewController 控制。当我删除顶部 viewControll
我仍在努力适应指针。不是概念——我理解内存位置、匹配可变长度的指针增量等——这是语法。这是一个我认为是我感到困惑/无法直观把握的原因之一: int a = 42; 在一个int大小的内存空间中分配并放
1. 简介 Kafka(Apache Kafka) 是一种分布式流数据平台,最初由LinkedIn开发,并于后来捐赠给Apache软件基金会,成为了一个Apache顶级项目。它被设计用于处理大规
1.想要在命令提示符下操作mysql服务器,添加系统变量。(计算机-系统属性——环境变量——path) 2.查询数据表中的数据; select selection_lis
MySQL表的增删改查(基础) 1. CRUD 注释:在SQL中可以使用“–空格+描述”来表示注释说明 CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Dele
我有一个网页,可以在加载时打开显示模式,在这个模式中,我有一个可以打开第二个模式的链接。当第二个模式关闭时(通过单击关闭按钮或单击模式外部),我想重新打开第一个模式。 对于关闭按钮,我可以通过向具有
使用 Core Data Fetched Properties,我如何执行这个简单的请求: 我希望获取的属性 ( myFetchProp ) 存储 StoreA ,它应该这样做: [myFetchPr
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 8年前关闭。 Improve this
最近,我得到了一个现有的Drupal项目,并被要求改进前端(HTML,JavaScript,CSS)。我在Django,PHP,Ruby等方面具有大量的前端和后端开发经验,但是我没有任何Drupal经
我试图让我的用户通过使用扫描仪类来决定要做什么,但我有一个问题,代码一旦运行就不会激活,并且它不会让我跳过任何行。我的代码如下所示: Scanner input = new Scanner(S
对模糊的标题表示歉意,因为我想不出这个名字是什么。 基本上创建一个计算学生财务付款的小程序。当我运行它时,它计算对象限额没有问题。然而,无论我尝试什么,对象“助学金”似乎除了 0 之外什么也没有提出。
这是我的代码 - main() { double x; double y = pow(((1/3 + sin(x/2))(pow(x, 3) + 3)), 1/3); prin
如果我的术语在这个问题上有误,我们深表歉意。 采取以下功能: i = 1; v = i * 2; for (j = 0; j < 4; j++ ) { console.log(v);
我的应用程序中有不同的类文件。我有 5 个类,其中 2 个是 Activity ,1 个是运行的服务。其他 2 个只是类。这两个类中变量的生命周期是多少。我知道一个 Activity 可以被操作系统杀
例如,一个方法返回一个 List 类型的对象。 public List bojangles () ... 一些代码调用方法FooBar.bojangles.iterator(); 我是 Java 的新
我遇到了一个奇怪的问题,网格的大小不适合我的屏幕。当我使用 12 列大时,它只占据屏幕的 1/3 的中间,请参见图像。我不确定是什么导致了这个问题。我没有任何会导致这种情况发生的奇怪 CSS。我不会在
我尝试使用头文件和源文件,但遇到了问题。因此,我对我正在尝试做的事情做了一个简化版本,我在 CodeBlocks 中遇到了同样的错误(undefined reference to add(double
我正在为我的网格系统使用基础,但这在任何网格系统中都可能是一个问题。我基本上用一个容器包裹了 3 个单元格,但其中一个单元格应该长到页面边框(留在我的 Sampe-Image 中)但这也可能在右侧)。
我是一名优秀的程序员,十分优秀!