zoukankan      html  css  js  c++  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>




  • 相关阅读:
    解释 ASP.NET中的Web页面与其隐藏类之间的关系
    B/S与C/S的联系与区别
    三层架构
    列举 ASP.NET页面之间传递值的几种方式
    什么是SQL注入式攻击?如何防范?
    post、get的区别
    Session,ViewState,Application,cookie的区别?
    Vue 09.前后端交互
    Vue 08.webpack中使用.vue组件
    Vue 07.webpack
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6768452.html
Copyright © 2011-2022 走看看