zoukankan      html  css  js  c++  java
  • Java IO详解(一)------File 类

    File 类:文件和目录路径名的抽象表示。

    注意:File 类只能操作文件的属性,文件的内容是不能操作的。

    1、File 类的字段

      我们知道,各个平台之间的路径分隔符是不一样的。

      ①、对于UNIX平台,绝对路径名的前缀始终为"/" 。 相对路径名没有前缀。 表示根目录的抽象路径名具有前缀"/"和空名称序列。

      ②、对于Microsoft Windows平台,包含驱动器说明符的路径名的前缀由后面跟着":"的驱动器号组成,如果路径名是绝对的,则可能后跟"\" 。 UNC路径名的前缀为"\\" ; 主机名和共享名称是名称序列中的前两个名称              没有有指定驱动器的相对路径名没有前缀。

      那么为了屏蔽各个平台之间的分隔符差异,我们在构造 File 类的时候(如何构造,请看下面第二点),就可以使用上述 Java 为我们提供的字段。

    System.out.println(File.separator);//输出    
    		System.out.println(File.pathSeparator);//输出 ;
    

      那么我们可以看出:

        File.pathSeparator指的是分隔连续多个路径字符串的分隔符

        File.separator是用来分隔同一个路径字符串中的目录的

    2、File 类的构造方法

    如何使用上述构造方法,请看如下例子:

    //不使用 Java 提供的分隔符字段,注意:这样写只能在 Windows 平台有效
    		File f1 = new File("D:\IO\a.txt");
    		//使用 Java 提供的分隔符
    		File f2 = new File("D:"+File.separator+"IO"+File.separator+"a.txt");
    		System.out.println(f1);//输出 D:IOa.txt   
    		System.out.println(f2);//输出 D:IOa.txt
    		
    		//File(File parent, String child) 
    		//从父抽象路径名和子路径名字符串创建新的 File实例。
    		File f3 = new File("D:");
    		File f4 = new File(f3,"IO");
    		System.out.println(f4); //D:IO
    		
    		//File(String pathname) 
    		//通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 
    		File f5 = new File("D:"+File.separator+"IO"+File.separator+"a.txt");
    		System.out.println(f5); //D:IOa.txt
    		
    		//File(String parent, String child) 
    		//从父路径名字符串和子路径名字符串创建新的 File实例。 
    		File f6 = new File("D:","IO\a.txt");
    		System.out.println(f6); //D:IOa.txt
    

      

    3、File 类的常用方法

      ①、创建方法

        1.boolean createNewFile() 不存在返回true 存在返回false
        2.boolean mkdir() 创建目录,如果上一级目录不存在,则会创建失败
        3.boolean mkdirs() 创建多级目录,如果上一级目录不存在也会自动创建

      ②、删除方法

        1.boolean delete() 删除文件或目录,如果表示目录,则目录下必须为空才能删除
        2.boolean deleteOnExit() 文件使用完成后删除

      ③、判断方法

        1.boolean canExecute()判断文件是否可执行
        2.boolean canRead()判断文件是否可读
        3.boolean canWrite() 判断文件是否可写
        4.boolean exists() 判断文件或目录是否存在
        5.boolean isDirectory()  判断此路径是否为一个目录
        6.boolean isFile()  判断是否为一个文件
        7.boolean isHidden()  判断是否为隐藏文件
        8.boolean isAbsolute()判断是否是绝对路径 文件不存在也能判断

       ④、获取方法

        1.String getName() 获取此路径表示的文件或目录名称
        2.String getPath() 将此路径名转换为路径名字符串
        3.String getAbsolutePath() 返回此抽象路径名的绝对形式
        4.String getParent()//如果没有父目录返回null
        5.long lastModified()//获取最后一次修改的时间
        6.long length() 返回由此抽象路径名表示的文件的长度。
        7.boolean renameTo(File f) 重命名由此抽象路径名表示的文件。
        8.File[] liseRoots()//获取机器盘符
        9.String[] list()  返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
        10.String[] list(FilenameFilter filter) 返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。

    //File(File parent, String child) 
    		//从父抽象路径名和子路径名字符串创建新的 File实例。
    		File dir = new File("D:"+File.separator+"IO");
    		File file = new File(dir,"a.txt");
    		
    		//判断dir 是否存在且表示一个目录
    		if(!(dir.exists()||dir.isDirectory())){
    			//如果 dir 不存在,则创建这个目录
    			dir.mkdirs();
    			//根据目录和文件名,创建 a.txt文件
    			file.createNewFile();
    
    		}
    		//返回由此抽象路径名表示的文件或目录的名称。 这只是路径名称序列中的最后一个名字。 如果路径名的名称序列为空,则返回空字符串。
    		System.out.println(file.getName()); //a.txt
    		//返回此抽象路径名的父null的路径名字符串,如果此路径名未命名为父目录,则返回null。
    		System.out.println(file.getParent());//D:IO
    		//将此抽象路径名转换为路径名字符串。 结果字符串使用default name-separator character以名称顺序分隔名称。
    		System.out.println(file.getPath()); //D:IOa.txt
    

     

    4、File 的一些技巧

      ①、打印给定目录下的所有文件夹和文件夹里面的内容 

    public static void getFileList(File file){
    		//第一级子目录
    		File[] files = file.listFiles();
    		for(File f:files){
    			//打印目录和文件
    			System.out.println(f);
    			if(f.isDirectory()){
    				getFileList(f);
    			}
    		}
    	}
    

      测试:

    public static void main(String[] args) throws Exception {
    		File f = new File("D:"+File.separator+"WebStormFile");
    		getFileList(f);
    	}
    

      

     

  • 相关阅读:
    Oracle 删除表中的一整列
    如何查看数据库中表的创建时间
    Oracle数据库的简单数据恢复
    分治和动态规划
    深入浅出 妙用Javascript中apply、call、bind
    CSS3 Background-size
    WampServer 2.5设置外网访问/局域网手机访问(403 Forbidden错误解决方法)
    js中apply方法的使用
    Leetcode No.1 Two Sum
    Python的sys.argv使用说明
  • 原文地址:https://www.cnblogs.com/ysocean/p/6851878.html
Copyright © 2011-2022 走看看