首页 > 代码库 > Java学习笔记七(目录操作)

Java学习笔记七(目录操作)

 

 1.介绍

上一篇博客介绍的是java中经常使用的操作文件的方式,本篇博客着重解说一下,在Java中是怎样来操作目录的。主要是利用的是Java.IO包以下的File类,本篇博客着重解说一下该类的构造函数和经常使用的方法。

 

 2.File类的字段摘要

File类为我们提供了与系统有关的路径切割符,字段分别例如以下

static String pathSeparator:返回值为字符串,结果表示分号;

static char pathSeparatorChar:返回值为char类型,结果表示分号

static char separatorChar:返回值为char类型,结果表示\的路径切割符

static string separator:返回值为String类型,结果表示\的路径切割符

<span style="font-family:SimSun;font-size:18px;">package com.IO;

import java.io.File;

public class FileDemo {
	public static void main(String[] args) {
		String separator=File.separator;
		System.out.println(separator);//输出\  windows下的路径切割符号
		
		String pathSeparator=File.pathSeparator;
		System.out.println(pathSeparator);//输出结果为分号;
		
	}
	

}
</span>


有了这些字段,以后用的时候,就能够无关跨系统的路径切割符了。


 2.File类的经常用法

1.创建一个文件

<span style="font-family:SimSun;font-size:18px;">package com.IO;

import java.io.File;
import java.io.IOException;

public class FileDemo1 {
	public static void main(String[] args){
		File file=new File("c:"+File.separator+File.separator+"1.txt");
		try {
			file.createNewFile();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	
	
}
</span>

执行之后会在C盘有一个1.txt的文件


2.删除方法

删除方法:boolean delete(),删除File构造函数方法中封装的路径。删除成功后返回true。注意的是直接删除。不走回收站

延迟删除方法 void deleteOnExit()删除File构造方法中封装的路径,等JVM结束前删除

<span style="font-family:SimSun;font-size:18px;">package com.IO;

import java.io.File;

public class FileDemo1 {
	public static void main(String[] args){
		File file=new File("c:"+File.separator+"1.txt");
		if(file.exists()){
			file.delete();
		}else {
			System.out.println("文件不存在");
		}
		
	}
	
	
	
}
</span>


3.创建一个目录

用的是File类的mkdir方法

<span style="font-family:SimSun;font-size:18px;">package com.IO;

import java.io.File;

public class FileDemo1 {
	public static void main(String[] args){
		File file=new File("c:"+File.separator+"1");
		file.mkdir();
	}
	
	
	
}
</span>

4.列出文件下的所有文件夹(包含隐藏的文件)

String[] list:获取File构造方法中封装的路径下的所有目录和文件

File[] listFiles:返回全部文件下的文件夹对象。两者的返回值不同

<span style="font-family:SimSun;font-size:18px;">package com.IO;

import java.io.File;

public class FileDemo1 {
	public static void main(String[] args){
		File file=new File("c:"+File.separator+"Users");
		String[] str=file.list();
		for(String s:str){
			System.out.println(s);
		}
				
		File[] files=file.listFiles();
		for(File s:files){
			System.out.println(s);
		}
	}
	
	
	
}
</span>


5.文件过滤器

在获取指定目录下的指定文件时,能够採取过滤器效果。採用的是例如以下方法

File[] listFile(FileFilter filter):文件过滤器,能够实现想获取想要的文件

<span style="font-family:SimSun;font-size:18px;">package com.IO;

import java.io.File;
import java.io.FileFilter;

public class FileFlter {
	public static void main(String[] args) {
		File file = new File("c:" + File.separator + "1");
		// 採用匿名类的形式封装FileFilter方法
		File[] files = file.listFiles(new FileFilter() {
			// 自己定义自己的过滤方法
			public boolean accept(File pathname) {
				return pathname.getName().endsWith(".txt");
			}
		});
		for (File s : files) {
			System.out.println(s);
		}
	}
}
</span>


6.File类的推断方法

~boolean exists():推断File构造方法中封装的路径是否存在

~boolean isDirectory():推断File构造方法中封装的是不是文件夹

~boolean isFile():推断File构造方法中封装的是不是文件

~boolean isAbslute():推断File构造方法中封装的是不是绝对路径

~boolean isHidden():推断File构造方法中封装的路径是不是隐藏属性

<span style="font-family:SimSun;font-size:18px;">package com.IO;

import java.io.File;

/*
 * 測试File的推断方法
 */
public class FileExists {
	public static void main(String[] args) {
		method();
	}
		
	//推断file构造方法封装的是不是绝对路径
		private static void method_4(){
			File file=new File("c:\\java");
			boolean b=file.isAbsolute();
			System.out.println(b);
		}
			
	//推断file构造方法封装的是不是文件
		private static void method_2(){
			File file=new File("c:\\java");
			boolean b=file.isFile();
			System.out.println(b);
		}
		
	
	//推断file构造方法封装的是不是文件夹
	private static void method_1(){
		File file=new File("c:\\java");
		boolean b=file.isDirectory();
		System.out.println(b);
	}
	
	//用来推断封装的某个路径是否存在
	private static void method(){
		File file=new File("c:\\windows");
		boolean b=file.exists();
		System.out.println(b);
	}
	
	
}
</span>

7.File类的获取方法get开头

 static File[] listRoots() 返回当前系统根

String getName() 获取的是File构造方法封装的文件名称或者是目录名,获取到的是封装的路径的最末尾的名字,目录。文件

String getParent() 获取的是File构造方法封装的路径的父路径。没有返回null,假设使用这种方法。返回的是String对象,能够使用String类的方法

File getParentFile() 获取的是File构造方法封装的路径的父路径。没有返回null,假设使用这种方法。返回的是File对象,能够使用File类的方法

String getPath()将File构造方法中封装的路径。变成String

String getAbsolutePath()获取File构造方法中封装的路径的绝对路径。返回String

File getAbsoluteFile()获取File构造方法中封装的路径的绝对路径。返回File


<span style="font-family:SimSun;font-size:18px;">package com.IO;

import java.io.File;

public class GetFile {
	public static void main(String[] args) {
		method_1();
	}
	
	
	
	private static void method_1(){
		//获得指定的文件的名称
		File file=new File("c:\\windows\\system32");
		String name=file.getName();
		//获得父级文件夹的对象路径
		File parentFile=file.getParentFile();
		System.out.println(parentFile.toString());
		//获取绝对路径的方法
		String absoluteFile=file.getAbsolutePath();
		
		System.out.println(name);
	}
	
	//获得系统的根文件夹一般就是操作系统的C D E 的盘符
	private static void method(){
		File[] filelist=File.listRoots();
		for(File o:filelist){
			System.out.println(o);
		}
	}
}
</span>




Java学习笔记七(目录操作)