`
raidyue
  • 浏览: 18777 次
  • 性别: Icon_minigender_1
  • 来自: 湖南常德
社区版块
存档分类
最新评论

File相关类总结

阅读更多

 

File是java中的与文件相关的类,可以对进行创建、删除、列出目录下的文件,判断文件或者目录。其位于java.io包中。在windows下的路径格式,例如某个桌面目录路径""。但是在java中“\”视为转译字符,因此在在使用该类是我们会将路径名写成“C:\Users\admin\Desktop”或者“C://Users//admin//Desktop”.

相对路径:指不以文件路径名开头的文件路径

绝对路径:指以文件根目录开头的路径

当前目录:指相对于程序运行时的相对路径

File中常用的方法: 列出根目录:File[]listRoot(),在windows下所列出的根目录是将计算机上的逻辑驱动器用数组返回,通俗的讲,返回的就是盘的数量,比如在我的电脑上运行下列代码,打印器器返回的结果为,“第0个目录C:\+第1个目录D:\+第2个目录E:\+第3个目录F:\+第4个目录G:\”

代码节选如下,

/**

	 * 列出机器上的根目录
	 */
	public void listRoots() {
		// 直接调用File类的static方法
		File[] lf = File.listRoots();
		// 输出File对象指向的文件的长度,以byte及,如指向目录,则返回的是0
		//System.out.println("磁盘上目录个数是:" + lf.length);
		// 返回抽象路径名的绝对路径名串符
		for (int i = 0; i < lf.length; i++) {
			System.out.println("第" + i + "个目录" + lf[i].getAbsolutePath());
		}
	}
 

boolean exist(): 判断File对象是否存在,存在则返回true反之则为false

boolean isFile(): 判断File是否是对文件,是则返回true反之则为false

boolean isDirectory(): 判断File对象是否是目录,是则返回true反之则为false

File getAbsolutePath(): 返回文件的绝对路径

boolean creatNewFile(): 创建个一个新的文件,成功创建则返回true反之则为false。该方法可能会抛出异常,因此需要对异常进行处理(异常请转至http://raidyue.iteye.com/blog/1584943)

boolean delete(): 删除File对象的抽象路径名表示的文件或者目录。若此路径名表示的是目录,则需要目录为空才能删除,删除成功则返回的是true,反之是false

以上几个方法的使用实列:判断是文件是否存在,删除文件,创建文件

public void testCreatAndDelete(String filename) {

		// 通过传入的文件名构造File对象
		File temFile = new File(filename);
		// 判断文件是否存在
		if (temFile.exists()) {
			// 判断File指向的文件是否是真是的文件
			if (temFile.isDirectory()) {
				// 输出其路径
				System.out.println("这是一个目录:" + temFile.getAbsolutePath());
			}
		}
		// 判断File对象指向的文件是否是真实的文件
		if (temFile.isFile()) {
			// 打印文件长度
			printFileAttr(temFile);
			// 删除文件
			temFile.delete();
			String theName = temFile.getName();
			String absPath = temFile.getAbsolutePath();
			System.out.println("文件已删除,名字是:" + theName + "绝对路径是:" + absPath);
		}else{
			try{
				temFile.createNewFile();
				System.out.println("文件已创立"+temFile.getAbsolutePath());
				//打印文件长度
				printFileAttr(temFile);
			}catch(Exception ef){
				System.out.println("创建文件失败");
			}
		}	
	}
 

递归:

简单说的说递归就是方法自己调用自己的过程,递归最需注意的就是递归结束的判断,如果没有跳出判断,就会陷入死循环。例如,我们用递归求出斐波那契数列的项,一下是代码实列

//求斐波那契数列

	public int Recursion(int i) {
		int f = 0;
		if (i == 1) {
			f = 1;
		}
		if (i == 2) {
			f = 1;
		}
		if(i>2){
		f = Recursion(i - 1) + Recursion(i - 2);
		}
		return f;
	}
 

当我们求第五项,f5= Recursion(4)+Recursion(3);

 =Recursion(3)+Recursion(2)+Recursion(2)+Recursion(1)

 =Recursion(2)+Recursion(1)+Recursion(2)+Recursion(2)+Recursion(1)

 =5

   现在我们知道了递归的方法,我们就能用递归找出某个目录下的所有文件,代码示例如下

 

   public int listDir(String dirName) {

		int fileCount = 0;
		File dirFile = new File(dirName);
		File[] subFile = dirFile.listFiles();
		//我们在这里判断跳出递归的条件
		if (subFile == null || subFile.length == 0) {
			return 0;
		}
		for (int i = 0; i < subFile.length; i++) {
			if (subFile[i].isDirectory()) {
				String subDir = subFile[i].getAbsolutePath();
				System.out.println("目录:" + subDir);
				txt_area.append(subDir + "\n");
				//这是个目录,所以我们以这个目录为起点,重新调用这个方法
				fileCount += listDir(subDir);
			}
			if (subFile[i].isFile()) {
				boolean mate = false;
				fileCount++;、
				//这是个文件,我们就获取文件的绝对路径,输出文件的绝对路径
				String filePath = subFile[i].getAbsolutePath();
				System.out.println("文件" + filePath);

				mate = readFile(filePath, keyWord);
				if (mate == true || filePath.contains(keyWord)) {
					txt_area.append(filePath + "\n");
				}
			}

		}

		return fileCount;

	}
分享到:
评论

相关推荐

    java中File类总结

    通过`File`类,我们可以执行一系列与文件和目录相关的操作,如创建、删除、重命名文件以及获取文件的各种属性等。 #### 二、构造方法 `File`类提供了多种构造方法,用于根据不同的输入创建`File`对象: 1. **无参...

    Android中File类的定义与常用方法.pdf

    总结,`File`类在Android开发中扮演着重要角色,它使得开发者能够方便地管理和操作文件系统,无论是简单的文件创建、删除,还是复杂的文件遍历和读写操作,都离不开`File`类的支持。理解和熟练使用`File`类,是成为...

    File类的使用

    ### File类在C#中的使用详解 #### 一、引言 在软件开发过程中,文件操作是一项非常基础且重要的功能。对于.NET Framework及其主要编程语言C#而言,`System.IO`命名空间提供了丰富的API用于处理文件相关的任务。其中...

    java.io包中的File类.doc

    通过`File`类,开发者可以轻松地创建、删除文件或目录,重命名文件,检查文件的属性(如文件大小、最后修改时间等),以及执行其他一些与文件相关的操作。 #### 二、File类的基本概念 `File`类的核心在于它提供了一...

    很好用的INI File类和实例

    在C++中,我们可以自定义一个INI File类来处理此类文件。以下是一个简单的类设计: ```cpp class IniFile { public: IniFile(const std::string& filePath); void write(const std::string& section, const ...

    Java-File类学习总结

    Java中的File类是Java I/O流体系中一个基础的类,它主要负责处理文件和目录的相关操作。在本文中,我们将深入探讨File类的基本概念、使用分隔符、构造器和方法,帮助开发者更好地理解和应用这个类。 1. **基本概念*...

    java File类的基本使用方法总结

    总结,Java的`File`类是文件操作的基础,无论是简单的文件创建、删除,还是复杂的文件上传、下载,都离不开它的支持。理解并熟练掌握`File`类的使用,对于进行Java相关的文件操作至关重要。通过`File`类,开发者可以...

    file_html_javaBYgetHtml

    `file_html`类被设计用于存储与HTML文件相关的数据。在Web开发或文件处理项目中,经常会遇到需要操作HTML文件的情况。该类通过封装HTML文件名的方式,提供了一种简单的方法来管理这些文件。 #### 成员变量`file_...

    Tailfile

    总结来说,`Tailfile`是将Unix的`tail -f`命令概念转化为可编程接口的一种方式,它方便开发者在各种环境中实时跟踪文件的变化。通过使用`Tailfile`类库,可以轻松地在应用程序中实现日志监控和其他需要实时文件更新...

    getFile文件操作。

    在许多编程语言中,都有类似的函数或方法,如Java的`File`类中的`exists()`、`getName()`等,它们用来检查文件是否存在,或者获取文件名。在Python中,`os`模块提供了`path`函数,可以用来获取文件路径的各种信息。 ...

    Java写的FileSearch工具(源码)

    总结来说,Java写的FileSearch工具结合了`File`类的文件操作功能、递归算法的深度遍历能力以及Swing的GUI设计,提供了一个方便用户快速查找特定文件的实用工具。通过理解和学习这个工具的源码,开发者可以深入掌握...

    单file控件批量上传文件

    总结一下,实现“单file控件批量上传文件”主要涉及以下技术点: 1. HTML5的`&lt;input type="file" multiple&gt;`控件用于多文件选择。 2. 使用File API和FormData对象进行前端文件上传。 3. JavaScript监听`change`事件...

    java知识点总结

    Java中的`File`类是Java.io包中的核心类,它...以上只是`File`类部分核心知识点的总结,实际使用中还需结合具体需求灵活运用,并注意异常处理。学习和理解`File`类及其相关API有助于更好地进行文件操作,提升编程效率。

    .net 文件处理帮助类总结大全

    使用File类的Delete方法可以轻松删除文件: ```csharp File.Delete(filePath); ``` 4. 文件移动和重命名 File类还提供了Move方法来移动或重命名文件: ```csharp File.Move(filePath, "新位置的新文件.txt"); `...

    jQuery-File-Upload

    总结,jQuery-File-Upload是一个强大且灵活的文件上传解决方案,它简化了前端文件上传的复杂性,提供了丰富的功能和高度的可定制性。无论你是初学者还是经验丰富的开发者,都能从中受益。在实际项目中,结合合理的...

    allFile.zip

    "allFile.zip"的描述提到"总结的一些画图内容,总结的一些画图内容",这可能意味着压缩包内包含了与图像处理、图形设计或绘图相关的文件。 在Windows操作系统中,用户可以使用内置的压缩工具如WinRAR或7-Zip来创建...

    Java文件操作类 File实现代码

    "Java文件操作类File实现代码详解" Java文件操作类File实现代码是Java中最基本的文件操作类,它提供了对文件和目录的创建、重命名、删除、文件列表的操作以及判读是否存在等功能。 概述 Java文件操作类File实现...

    annotation-file-utilities.jar.zip

    而当我们谈论`annotation-file-utilities.jar.zip`时,这显然与处理和操作注解相关的工具库有关。 `annotation-file-utilities.jar`是这样一个库,它提供了一系列的工具和API,便于开发者对注解进行读取、分析和...

    java file upload BLOB

    - 当使用 Oracle 数据库时,需要引入 Oracle 的 JDBC 驱动,并且在处理 BLOB 对象时需要导入 `oracle.sql.BLOB` 类。 - 为了提高效率和安全性,可以考虑使用事务来保证数据的一致性。 ### 2. 处理图片上传和显示的...

Global site tag (gtag.js) - Google Analytics