- 浏览: 772506 次
- 性别:
- 来自: 太原
博客专栏
-
Java编程Step-by...
浏览量:161335
文章分类
最新评论
-
liuwei1981:
尘土飞扬 写道取整的函数,返回值是double?测试下就能看出 ...
86.Math类的使用 -
尘土飞扬:
取整的函数,返回值是double?
86.Math类的使用 -
尘土飞扬:
终于清楚了Date和Calendar的来龙去脉谢谢
90.Java日期处理 -
谁说我不是会员:
liuwei1981 写道hupu_2014 写道根据你的执行 ...
65.对象的构造以及初始化 -
谁说我不是会员:
有的地方能优化,有的不能,不能一概而论。
有必要用StringBuilder的append代替String的+字符串连接运算么
1 基本文件操作
在Java中,提供了对文件以及目录进行操作的File类。注意,在Java中,对目录的操作也是通过这个类来完成的,并没有单独为目录定义相应的类。File类放在java.io包中。
在Java中,将路径也当作File类来处理。它并没有为路径特别设置一个类。路径名中除了最后一个之外每个字段都表示一个目录;最后一个字段可能表示一个目录或文件名。路径名可以是绝对的,也可以是相对的。绝对路径名包含了定位它所表示的文件所需要的全部信息,而相对路径名则不然,必须依据其他路径名的信息进行解释。
在默认情况下,系统总是依据当前用户的工作路径来解释相对路径,这个路径是由系统属性“user.dir”确定的,并且通常就是Java虚拟机从其中启动的那个目录。
可以使用多种格式创建File类对象,例如:
File file;
//以当前工作路径下的Test.java文件来创建一个File对象
file = new File("Test.java");
//以目录E:\ex\下的文件Test.java来创建一个File对象
file = new File("E:\\ex\\","Test.java");
//以文件E:\ex\Test.java来创建一个File对象,和上一句效果一样
file = new File("E:\\ex\\Test.java");
//以目录E:\ex\来创建一个File对象
File path = new File("E:\\ex\\");
//以File对象path路径下的Test.java来创建一个对象
File file = new File(path, "Test.java");
因为在Java中,反斜杠“\”是转义符,所以在使用它来表示Windows目录的分割符的时候,需要用“\\”来表示。另外,在各种操作系统中,对于文件路径都有不同的表示方式,比如,在Unix/Linux/BSD和其他类Unix系统中,通过在路径前面的“/”表示根目录,如果一个路径中的最前面有“/”标记,则说明这个路径是绝对路径;而在Windows中,通过盘符和“\”来表示绝对路径,可以通过类File的字符串常量seperator,可以获得对应目标操作系统上的路径分割符。在Java中,File类定义的是一个抽象的、与操作系统无关的类。
需要提醒注意的是,在创建File对象的时候,它并不会在磁盘上产生一个路径或文件。创建一个File对象只是创建了一个表示相应的文件或路径的File类的实例。
在File这个类中,定义了很多的方法用于对文件或目录进行操作。下面列出一些比较常用的一些方法:
文件名相关
String getName():返回此File对象所表示的文件名或目录名(如果是目录的话,返回最后一级子目录名);
String getPath():返回此File对象所对应的路径;
String getAbsolutePath():返回此File对象所对应的绝对路径名;
String getParent():返回此File对象对应目录(最后一级子目录)的父目录路径名;
boolean renameTo(File newName):重命名此File对象对应的文件,如果重命名成功,返回true,否则返回false。
文件检测
boolean exists():判断文件对象的文件或目录是否存在。
boolean canWrite():判断目录或文件是否可写。
boolean canRead():判断目录或文件是否可读。
boolean isFile():判断File对象指向的是否为一个文件。
boolean isDirectory():判断File对象指向的是否为一个目录。
boolean isAbsolute():判断文件对象的路径是否是绝对路径。这取决于不同的操作系统,在Unix/Linux/BSD等系统上,如果路径的开头是“/”,说明它是一个绝对路径,而在Windows上,如果路径的开头是盘符,或者路径是由“\”来分割的,则说明它是一个绝对路径。
获取常规文件信息
long lastModified():返回此File对象所对应文件的最后一次被修改时间。long型返回值表示此文件最后一次被修改的时间,注意,在这边返回的不是日期,而是从格林威治时间(GMT)1970年1月1日00:00:00以来的毫秒数;
long length():返回文件的长度;
文件操作
boolean createNewFile():自动创建一个File对象中指定文件名的空的文件,只有在指定文件名文件不存在的时候才能成功;
boolean delete():删除File对象对应的文件或目录;
File createTempFile(String prefix,String suffix):在默认的临时目录下创建一个临时文件,文件名由前缀prefix、系统生成的随机数和后缀suffix指定,返回一个表示新创建的临时文件的File 对象;
File createTempFile(String prefix,String suffix,File directory):在指定的目录directory下创建一个临时文件,文件名由前缀prefix、系统生成的随机数和后缀suffix指定,返回一个表示新创建的临时文件的File 对象;
void deleteOnExit():在Java虚拟机退出的时候,请求删除对象所指定的文件。
目录操作
boolean mkdir():试图新建一个File对象所定义的一个路径,如果新建成功,返回true,否则,返回false。此时File对象必须是目录对象。
String[] list():只对File对象为目录时有效,返回这个目录下的所有文件以及子目录;
File[] listFiles():返回File对象表示的路径下的所有文件对象数组。
下面我们来看一个示例,熟悉上述方法的使用。
import java.io.File;
import java.io.IOException;
public class FileOper {
public static void main(String[] args) {
File f = new File("c:\\JDK14");
try {
// 在f指定的目录下创建一个临时文件
f.createTempFile("myTmp", ".linshi", f);
} catch (IOException e) {
System.out.println(e.getMessage());
}
// 获得目录下的所有文件和子目录
File[] files = f.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
System.out.println("文件:" + files[i]);
} else {
System.out.println("目录:" + files[i]);
}
}
}
}
运行这个FileOper应用,将会生成一个myTmpXXXX.linshi的临时文件,然后,通过File对象的listFiles()方法,返回一个File对象,并且将这些对象按照文件或者目录打印出来:在输出它们的完整路径名称之前,指明它们的类型。下面是应用执行的结果:
目录:c:\JDK14\bin
文件:c:\JDK14\COPYRIGHT
目录:c:\JDK14\demo
目录:c:\JDK14\include
目录:c:\JDK14\jre
目录:c:\JDK14\lib
文件:c:\JDK14\LICENSE
文件:c:\JDK14\myTmp12363.linshi
文件:c:\JDK14\readme.html
文件:c:\JDK14\README.txt
目录:c:\JDK14\src
文件:c:\JDK14\src.zip
注意这里的临时文件“myTmp12363.linshi”,它在指定的前缀“myTmp”和后缀“.linshi”之间加入了一个随机数,以防止文件名的重复。重复执行这个程序,将生成不同文件名的临时文件,格式为“myTmpXXXXX.linshi”,其中“XXXXX”会不断变化。
File类中的其他方法的使用,在此不一一举例,请读者参考API文档和上面的方法说明使用它们。
2 文件过滤
在File类的list()方法中,可以接受一个参数FileNameFilter,通过它,可以只将一些符合条件的文件列出来。
FileNameFilter是一个接口,它只有一个accept()方法,所以,只需要自己定义一个类实现这个接口,并且将接口中的accept()实现,然后将它作为File的list()方法的参数就可以实现文件的过滤功能。注意,只需要将FileNameFilter对象作为list()方法参数就可以了,不需要在程序中调用accept()方法,程序在运行过程中会自动调用这个方法来过滤文件,它是一个回调方法(callback method)。
下面我们来看一个使用过滤器来过滤文件的例子。
import java.io.*;
/**
* 功能:按照扩展名过滤文件(Java)
*
* @version v1.0
*/
public class JavaFilter implements FilenameFilter {
/**
* 只接受java文件
*
* @see JavaList
* @param args
* Path,FileName
* @return true or false
*/
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
}
这个类JavaFilter实现了FileNameFilter接口,并且实现了accept()方法,它将根据文件扩展名是否为.java来过滤文件。
下面是使用这个JavaFilter来过滤文件的例子。
import java.io.*;
/**
* 功能:把某个路径下的文件,通过JavaFilter过滤后(只返回)java文件,输出到屏幕
*
* @author alex wen
* @version v1.0
*/
public class JavaList {
/**
* @param Path
* @return java files
*/
public static void main(String args[]) {
if (args.length != 1) {
System.out.println("Usage:java JavaList <directory>");
System.exit(0);
}
String dir = args[0];
File currDir = new File(dir);
String[] javaFiles = currDir.list(new JavaFilter());
for (int i = 0; i < javaFiles.length; i++) {
System.out.println(javaFiles[i]);
}
}
}
这个程序将刚才定义的JavaFilter类当作File类的list()方法的参数,因此,它能够将指定路径下的所有java文件列出来。
发表评论
-
cas4实现sso(一)cas简介
2015-01-15 16:59 973sso(单点登录)在实际的应用开发中经常会用到,特别是软件 ... -
学习编程,实践和理论哪个更重要?
2014-11-24 10:21 1368最近面试了几位还在校 ... -
JMS消息传送模型
2014-07-03 12:12 857jms支持两类消息传送模型:点对点模型(p2p)和发布/订 ... -
为什么使用Java消息服务
2014-03-31 21:36 818Java消息服务有着众多 ... -
SSH+ExtJs完成CKEditor富文本编辑器整合
2013-05-13 11:31 2424最近根据项目需要,在当前项目开发框架中整合入了CKEdi ... -
工作经验与时间无关
2013-03-12 11:20 940工作经验和时间无关! 总是听到这样的说法,我已经工作 ... -
4.判断jbpm流程实例流转完毕
2013-03-11 10:41 2945在使用jbpm4.x进行业务 ... -
3.JBPM与SSH框架整合
2013-02-27 10:13 1010使用Jbpm进行软件开发 ... -
2.Jbpm环境搭建
2012-12-10 15:28 13321.准备工作 首先我 ... -
90.Java日期处理
2012-12-07 09:16 29031 Date类 在编 ... -
88.容器类
2012-12-05 09:20 1982一个容器(container)是 ... -
87.String类
2012-12-04 09:24 1671在Java中,使用String和StringBuffer来表示 ... -
1.Jbpm初步了解
2012-12-03 10:40 885因为工作的关系,使用到了Jbpm来进行工作流程的应用开发。开始 ... -
86.Math类的使用
2012-12-03 10:15 1543在实际编程中,大量的数据运算是不可避免的。在Java类库中,已 ... -
85.IO操作入门
2012-11-30 09:25 1466多数应用程序在运行过程中要与用户进行交互,通常的交互方式是:用 ... -
84.系统属性操作
2012-11-27 09:50 1599这里首先要说明的是,Java并不能够直接操作底层操作系统的属 ... -
83.Java编程语法基础说明
2012-11-22 09:17 1663到此为止,有关Java编程基础语法部分的内容就结束了。 ... -
82.处理异常
2012-11-20 09:39 21351.常见异常 下 ... -
81.Java异常概述
2012-11-19 09:40 1448没有人敢保证说它写的程序永远没有错。即使写的程序没有错,也不要 ... -
80.Java修饰符适用范围
2012-11-14 09:50 1636我们学习了不少的修饰符,如用于访问控制的public、prot ...
相关推荐
通过对《大学计算机基础》的学习和上机,我掌握了包括文件的管理、控制面板的设置、Windows 附件的使用等在内的计算机基础知识和操作技术,让我对计算机有了初步认识。 三、实验心得 对文件的管理、控制面板的设置...
PE文件,即Portable Executable,是Microsoft Windows操作系统中用于执行程序的文件格式。它包含了程序的机器码、元数据以及资源信息。理解PE文件格式对于分析、逆向工程和软件安全至关重要。 一、PE文件格式 PE...
这个压缩包“docx文件格式初步研究.rar”包含了对DOCX格式的深入分析。 **一、XML结构** 1. **[Content_types].xml**:此文件定义了压缩包内各个文件的类型,指导应用程序如何解析和显示内容。 2. **docProps** ...
在“群联Phison最新版量产工具V1[1].89”压缩包中,除了主程序文件外,还包含的“1.jpg”、“2.jpg”、“0.jpg”、“3.jpg”等图片文件可能是操作指南或界面截图,帮助用户更好地理解和使用工具。在使用工具之前,...
通过课程设计, 加深对操作系统各资源管理模块的理解,掌握操作系统的基本原理及功能,具有初步分析实际操作系统、设计、构造和开发现代操作系统的基本能力。 二、实验题目 1.编写并调试一个树型目录结构的文件系统,...
本课程设计的主要目的是通过设计一个小型文件系统,进一步掌握文件管理的方法和技术,使学生初步具有研究、设计、编制和调试操作系统模块的能力。本设计要求学生设计基于位示图的文件连续分配算法、显示文件目录、...
### Linux操作实验知识点详解 ...通过上述实验内容的学习,可以初步掌握Linux的基本命令格式、登录方式、文件管理以及获取帮助信息的方法,并通过实际操作加深理解。这对于进一步学习和使用Linux系统非常重要。
2. 文件审批流程:设计文件通常需要经过多个阶段的审批,包括初步设计审查、详细设计审查、最终设计确认等。这个过程中,涉及的设计人员、项目经理、质量控制人员以及相关部门经理等都需要参与审批,确保设计的合规...
`run_pascal.sh`可能包含了设置数据路径、模型配置、训练参数、验证步骤等操作。用户在实际项目中会根据自己的数据集路径进行相应的修改,以便模型能正确地读取和处理数据。执行此脚本通常涉及以下步骤:数据预处理...
在类UNIX系统中,文件操作通常涉及到i节点,i节点存储了文件的各种元数据,如文件大小、权限、修改时间等。 5. **目录管理模块**:支持多级目录结构,允许用户创建和删除目录。目录作为文件系统的重要组成部分,...
在这一讲中,我们主要是了解一下 Linux 的概况,以及对 Linux 有一个初步的感性认识。 一.什么是Linux? Linux 是一个以 Intel 系列 CPU(CYRIX,AMD 的 CPU也可以)为硬件平台,完全免费的 UNIX 兼容系统,完全...
从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 相关知识 1. 文件结构体 在文件管理系统中,我们使用一个结构体struct FileNode来表示文件或目录。该结构体包括文件名、目录文件识别标志、文件的...
MDPT.exe文件很可能是这个量产工具的主执行程序,通常这类工具的界面会包含各种选项卡,如基本信息、设备选择、参数设置、操作日志等。用户通过这些选项来控制和监控整个量产过程。 使用联盛UT163量产工具v3.9.8.0...
首先,通过调用`cryptex.00401670`函数进行初步的数据准备,然后利用`CryptCreateHash`函数创建哈希对象,这是验证文件完整性和安全性的重要步骤。如果文件的哈希值无法验证,则程序会输出错误信息“Unable to ...
`python_base.py`可能是用来操作这个CSV文件的Python脚本,用于学习和实践`pandas`的基础操作。 首先,我们来深入理解`pandas`库。`pandas`库由Wes McKinney创建,旨在提供易于使用的数据结构和数据分析工具。其...
文件头记录实验条件的仪器设置信息,传感器响应信息记录区是文件的核心,记录采样时间节点上的气敏传感器响应值数据,文件尾则包含与初步分析相关的数据信息。 2. 提取信息的首要任务是剔除文件头与文件尾的冗余...
根据提供的文件信息,"计算机操作员国家职业标准.pdf" 的内容未能完整展现,仅提供了一部分数字和代码片段,这些片段难以直接转化为具体的知识点。但是,根据文件标题“计算机操作员国家职业标准.pdf”,我们可以...
本文将深入讲解C++中的文件操作,并通过实例来指导低年级同学如何进行文件读写。 1. **文件操作基础** 在C++中,文件操作主要依赖于`fstream`库,包含头文件`<fstream>`。文件操作分为打开(open)、读取(read)...
本压缩包文件“某公司品牌操作策略初步.pptx”很可能是该公司在其品牌建设初期阶段所制定的策略概述,旨在探讨和规划如何有效打造和推广其品牌形象。 品牌策略的核心通常包括以下几个关键部分: 1. **品牌定位**:...
1. **初步判断**:拿到一个db文件时,首先应该尝试通过文件名或创建该文件的应用程序来推测文件类型。然而,这种方法往往不够准确,特别是当文件类型不明或者文件扩展名被修改时。 2. **使用WinHex进行文件类型识别...