zoukankan      html  css  js  c++  java
  • File类的简单使用

    前段时间一直在搞IOS,很久没碰JAVA了,感觉都生疏了,现在因为工作的需要,又要开始学习JAVA,特别是JAVA的IO,真的很生啊,所以今天就学学了,先从File类开使:

    1.访问文件和目录

    package com.file;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileTest {
    
    	public static void main(String[] args) throws IOException {
    		//以当前路径来创建一个File对象
    		File file=new File(".");
    		//直接获取文件名,输出一点
    	
    		System.out.println(file.getName());
    		//获取相对路径的父路径可能出错,下面代码输出null
    		System.out.println(file.getParent());
    		//获取绝对路径
    		System.out.println(file.getAbsoluteFile());
    		//获取上一级路径
    		System.out.println(file.getAbsoluteFile().getParent());
    		
    		//在当前路径下创建一个临时文件
    		File tempFile=File.createTempFile("aaa", ".txt",file);
    	    //指定当JVM退出时,删除此文件
    		tempFile.deleteOnExit();
    		
    		//以系统当前时间作为新文件名来创建文件
    		File newFile=new File(System.currentTimeMillis()+".");
    		//输出是false,有点奇怪,对象创建好了,只是没有创建它在系统的物理文件而已
    		System.out.println("newFile对象是否存在 : "+newFile.exists());
    		//以指定的File对象来创建一个文件
    		newFile.createNewFile();
    		//输出true
    		System.out.println("newFile对象是否存在 : "+newFile.exists());
    		//以指定的File对象来创建一个目录,因为newFile已经存在
    		//所以下面的方法返回false,即无法创建该目录
    		System.out.println(newFile.mkdir());
    		
    		//使用List方法,列出当前路径下所有文件和路径
    		String[] fileList=file.list();
    		System.out.println("========当前路径下所有文件和目录如下=======");
    		for(String fileName:fileList){
    			System.out.println(fileName);
    		}
    		
    		//listRoots静态方法列出所有磁盘的根路径
    		File[] roots=File.listRoots();
    		System.out.println("====系统所有根路径如下====");
    		
    		for(File root:roots){
    			System.out.println(root);
    		}
    		
    		
    
    	}
    
    }
    

    运行上面的程序输出一下内容,并会在当前的路径下创建新文件

    .
    null
    E:\mywork\TestFileUpload\.
    E:\mywork\TestFileUpload
    newFile对象是否存在 : false
    newFile对象是否存在 : true
    false
    ========当前路径下所有文件和目录如下=======
    .classpath
    .myeclipse
    .mymetadata
    .project
    .settings
    1370747871477
    1370748051829
    aaa11121.txt
    src
    WebRoot
    ====系统所有根路径如下====
    C:\
    D:\
    E:\
    F:\
    G:\
    H:\

    接下来就简要的说下File类的一些相关注意的问题
    注意:Windows路径分隔符使用反斜线(\),而JAVA程序中的反斜线表示转义字符,所以如果需要在Windows路径中包括反斜线,应该用两条反斜线,如:E:\\aaa\aaa.txt,或者直接使用斜线也可以.Java程序支持将斜线(/)当成平台无关的路径分隔符.

    不管是文件还是目录都是通过File来操作的,File能删除、新建和重命名文件和目录,File不能访问文件内容本身,如果需要访问文件内容本身,需要使用输入、输出流。

    2.文件过滤器

    在file 的list方法里可以接收一个FilenameFilter参数,通过该参数,可以只列出符合条件的文件.在 FilenameFileter接口了,有一个accept(File dir ,String name)方法,该方法将依次对指定的File的所有子目录、子文件夹进行迭代,如果该方法返回true,则list方法会列出该子目录或子文件夹.

    package com.file;
    
    import java.io.File;
    import java.io.FilenameFilter;
    
    public class FilenameFileterTest {
    
    	public static void main(String[] args) {
    		File file =new File(".");
    		String[] nameList=file.list(new MyFilenameFilter());
    		for(String name:nameList){
    			System.out.println(name);
    		}
    	}
    
    }
    
    //实现自己的FilenameFilter实现类
    class MyFilenameFilter implements FilenameFilter{
    
    	public boolean accept(File dir, String name) {
    		  if(name.endsWith(".java")||new File(name).isDirectory()){
    			  return true;
    		  }	
    		return false;
    	}
    	
    }
  • 相关阅读:
    CSS盒子模型
    CSS
    html基础
    浅谈三层架构
    mysql更改表结构:添加、删除、修改字段、调整字段顺序
    类的高级概念
    无锁版以时间为GUID的方法
    以当前时间作为GUID的方法
    关于客户定制化软件的探讨
    关于敏捷的一点想法
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300439.html
Copyright © 2011-2022 走看看