zoukankan      html  css  js  c++  java
  • Java_File类

    File类

    java.io.File类代表文件和目录, 在开发中, 读取文件, 生成文件, 删除文件, 修改文件的属性时经常用到此类
    File类常见构造方法: public File(String pathname), 以pathname为路径创建File对象, 如果pathname是相对路径, 则默认的当前路径在系统属性user.dir中存储
    在eclipse项目开发中, user.dir就是本项目的目录. 因此, 执行完毕后, 在本项目和D盘下都生成了新文件(如果是eclipse下, 需用按F5刷新目录结构才能看到新文件)

    方法 说明
    pathSeparator, separator 路径分隔符
    File(String parent, String child) 构造器
    File(File parent, String child) 构造器
    File(String name) 构造器, 没有路径则以工程目录(user.dir)作为相对路径
    public boolean exits() 判断File是否存在
    public boolean isDirectory() 判断File是否是目录
    public boolean isFile() 判断File是否是文件
    public long lastModified() 返回File最后修改时间
    public long length() 返回File大小, 若不存在则返回0
    public String getName() 返回文件名
    public String getPath() 返回文件的目录路径, 绝对路径则返回绝对路径, 相对路径则返回相对路径
    public String getAbsolutePath() 返回绝对路径
    public getParent() 返回父路径
    createNewFile() 创建新的File
    delete() 删除目录或文件
    length() 返回文件大小
    list() 列出目录下所有文件
    listFiles() 把列出的文件/目录转化为对象
    listRoots() 列出根路径
    mkdir() 创建一个目录, 中间某个目录缺失, 则创建失败
    mkdirs() 创建多个目录, 中间某个目录缺失, 则创建缺失目录
    /**********构造实例***********/
    import java.io.File
    
    String path = "G:\eclipse-workspace\Pro-1\IO.png";	// 两个反斜杠中有一个为转义字符
    String path = "G:" + File.separator + "eclipse-workspace" + File.separator + "Pro-1" + File.separator + "IO.png";	// 利用File类中的字符拼接常量拼接路径
    String path = "G:/eclipse-workspace/Pro-1/IO.png";		// 推荐此种方法
    
    File src = new File(path); 											// 利用全路径名构建对象 
    src = new File(new File("G:/eclipse-workspace"), "Pro-1/IO.png");	// 利用父对象, 子对象构造实例对象
    src = new File("IO.png");											// 在当前工程路径下构造对象
    
    System.out.println(System.getProperty("user.dir"));		// 输出工程路径
    
    
    /******getpath()返回路径*******/
    import java.io.File
    
    public static void main(String[] args) {
    	String path = "G:/eclipse-workspace/Pro-1/IO.png";
    
    	File src = new File(path);
    	System.out.println(src.getPath());
    	System.out.println(src.length());
    	System.out.println("########################");
    
    	src = new File(new File("G:/eclipse-workspace"), "Pro-1/IO.png");
    	System.out.println(src.length());
    	System.out.println(src.getPath());
    	System.out.println("########################");
    		
    	src = new File("IO.png");
    	System.out.println(System.getProperty("user.dir"));
    	System.out.println(src.getPath());
    	System.out.println(src.length());
    }
    
    /*
    G:eclipse-workspacePro-1IO.png
    36981
    ########################
    36981
    G:eclipse-workspacePro-1IO.png
    ########################
    G:eclipse-workspacePro-1
    IO.png
    36981
    */
    
    /*********路径相关*********/
    public static void main(String[] args) {
    	File src = new File("IO.png");
    	File src_1 = new File("haha/IO.png");
    		
    	System.out.println("名称: " + src.getName());
    	System.out.println("工程路径: " + System.getProperty("user.dir"));
    	System.out.println("路径: " + src.getPath());
    	System.out.println("绝对路径: " + src.getAbsolutePath());
    	System.out.println("父路径: " + src.getParent());			// 没有路径分割符, 所有父路径为空
    	System.out.println("父对象: " + src.getParentFile());		// 没有路径分割符, 所有父对象为空
    	System.out.println("src_1父路径: " + src_1.getParent());
    	System.out.println("src_1父对象: " + src_1.getParentFile());
    }
    
    /*
    名称: IO.png
    工程路径: G:eclipse-workspacePro-1
    路径: IO.png
    绝对路径: G:eclipse-workspacePro-1IO.png
    父路径: null
    父对象: null
    src_1父路径: haha
    src_1父对象: haha
    */
    
    /**********************示例程序***************************/
    import java.io.File;
    import java.io.IOException;
    import java.util.Date;
    
    public static void main(String[] args) throws IOException {
    //	File f1 = new File("d:/a.txt");	// 使用斜杠反斜杠都可以
    	File f1 = new File("d:\a.txt");	// 两个反斜杠其中有一个是脱字符
    	System.out.println(f1);
    	f1.renameTo(new File("d:/bb.txt"));
    	
    	File f2 = new File("gg.txt");
    //	f2.createNewFile();		//创建文件
    	
    	System.out.println("f2是否存在: " + f2.exists());
    	System.out.println("f2是否是目录: " + f2.isDirectory());
    // 把f2.createNewFile();注释掉则没有文件生成, 所有返回false	
    	System.out.println("f2是否是文件: " + f2.isFile());
    	System.out.println("f2最后修改时间: " + new Date(f2.lastModified()));
    	System.out.println("f2的大小: " + f2.length());
    	System.out.println("f2的文件名: " + f2.getName());
    	System.out.println("f2的工程目录: " + System.getProperty("user.dir"));
    	System.out.println("f2的目录路径: " + f2.getPath());
    	System.out.println("f1的目录路径: " + f1.getPath());
    }
    
    /*
    d:a.txt
    f2是否存在: false
    f2是否是目录: false
    f2是否是文件: false
    f2最后修改时间: Thu Jan 01 08:00:00 CST 1970
    f2的大小: 0
    f2的文件名: gg.txt
    f2的工程目录: G:eclipse-workspacePro-1
    f2的目录路径: gg.txt
    f1的目录路径: d:a.txt
    */
    
    /***********list(), listFiles()*******/
    import java.io.File;
    
    public static void main(String[] args) {
    	File dir = new File(System.getProperty("user.dir"));
    	
    	// 列出目录下所有文件/目录
    	String[] subNames = dir.list();
    	for(String s : subNames) {
    		System.out.print(s + "	");
    	}
    	System.out.println();
    	
    	// 以对象形式列出的目录/文件
    	File[] subFiles = dir.listFiles();
    	for(File s : subFiles) {
    		System.out.print(s.getAbsolutePath() + "	");
    	}
    	System.out.println();
    	
    	// 列出所有盘符
    	File[] roots = dir.listRoots();
    	for(File r : roots) {
    		System.out.print(r.getAbsolutePath() + "	");
    	}
    }
    
    /*
    .classpath	.project	.settings	bin	IO.png	src	
    G:eclipse-workspacePro-1.classpath	G:eclipse-workspacePro-1.project	G:eclipse-workspacePro-1.settings	G:eclipse-workspacePro-1in	G:eclipse-workspacePro-1IO.png	G:eclipse-workspacePro-1src	
    C:	D:	E:	F:	G:
    */
    
    /*********递归形式打印*********/
    import java.io.File;
    
    public static void main(String[] args) {
    	File src = new File(System.getProperty("user.dir"));
    	
    	printDirFile(src, 0);
    }	
    public static void printDirFile(File src, int deep) {
    	for(int i = 0; i < deep; i ++) {
    		System.out.print("-");
    	}
    	
    	System.out.println(src.getName());
    	
    	if(null == src || !src.exists()) {
    		System.out.println("路径错误!!!");
    	}else if(src.isDirectory()) {
    		for(File s : src.listFiles()) {
    			printDirFile(s, deep + 1);
    		}
    	}
    }
    
    /*
    Pro-1
    -.classpath
    -.project
    -.settings
    --org.eclipse.jdt.core.prefs
    -bin
    --zyb
    ---cn
    ----FileDemo_01.class
    ----FileDemo_02.class
    -IO.png
    -src
    --zyb
    ---cn
    ----FileDemo_01.java
    ----FileDemo_02.java
    */
    
    /**************创建文件与目录示例程序****************/
    import java.io.File;
    import java.io.IOException;
    
    public static void main(String[] args) throws IOException {
    	File f = new File("d:/c.txt");
    	f.createNewFile();
    	
    	// con com3... 操作系统的设备名,不能正确创建
    //	File src = new File("G:eclipse-workspacePro-1con");
    //	src.createNewFile();		// 报错
    	
    	f.renameTo(new File("d:/g.out"));
    	// 删除不了重命名后的文件	
    	f.delete();	
    	
    	File f2 = new File("d:/电影/华语/大陆");
    	boolean flag = f2.mkdir();
    	System.out.println(flag);
    	
    	// 可删除目录与文件
    //	f2.delete();
    	boolean flag2 = f2.mkdirs();
    	System.out.println(flag2);
    }
    
    /*
    false
    true
    */
    
    /*************File类应用*****************/
    import java.io.File;
    import java.io.IOException
    
    public static void main(String[] args) {
    	File file = new File("d:/zyb/b.txt");
    	
    	// 判断该文件是否存在
    	boolean flag = file.exists();
    	
    	// 如果存在则删除, 不存在则创建
    	if(flag) {
    		// 删除
    		boolean flagd = file.delete();
    		if(flagd) {
    			System.out.println("删除成功");
    		}
    		else {
    			// 没有删除zyb目录
    			System.out.println("删除失败");
    		}
    	}
    	else {
    		// 创建
    		boolean flagn = true;
    		try {
    			File dir = file.getParentFile();
    		
    		dir.mkdirs();
    		// 创建文件
    		flagn = file.createNewFile();
    		System.out.println("创建成功");
    		}
    		catch (IOException e) {
    			System.out.println("创建失败");
    			e.printStackTrace();
    		}
    	}
    	
    }
    
    /*
    创建成功
    */
    

    待续

  • 相关阅读:
    KeBugCheckEx0xD1
    Ti DSP编程入门
    动态链接库
    Hello,world! x86版本
    用回调函数联系两个模块
    DataGrid模版列超级链接列传递参数问题总结(多个参数传递)
    后台代码里执行弹出脚本方法!(Response.Write)
    Oracle数据导入导出imp/exp
    安装sql2000: 出现 A previous program installation created pending file operations on the installation machine. You must restart the computer before running setup
    解决问题:  An unhandled exception of type 'System.Exception' occurred in system.data.oracleclient.dll
  • 原文地址:https://www.cnblogs.com/hesper/p/9736579.html
Copyright © 2011-2022 走看看