黑马程序员——JAVA笔记——File

来源:互联网 发布:360网页广告拦截软件 编辑:程序博客网 时间:2024/06/05 16:12

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


File类时用来描述文件的一个类。

File类的构造方法:

public static void consMethod(){//将a.txt封装成file对象。可以将已有的和未出现的文件或者文件夹封装成对象。File f1=new File("a.txt");//File f2=new File("E:\\java\\exam","b.txt");File d=new File("E:\\java\\exam");File f3=new File(d,"c.txt");System.out.println("f1:"+f1);System.out.println("f2:"+f2);System.out.println("f3:"+f3);File f4=new File("c:" +File.separator+"abc" +File.separator+"zzz" +File.separator+"a.txt");}


File类的常见方法:

1.创建。
boolean createNewFile();在指定位置创建文件,如果该文件已经存在,则不创建返回false。
和输出流不一样,输出流对象一建立就会创建文件。且文件已经存在会覆盖。
boolean mkdir();创建文件夹。

boolean mkdirs();创建多级文件夹。

public static void method(){File f=new File("file.txt");System.out.println("exists:"+f.exists());//System.out.println("Execute:"+f.canExecute());//创建文件夹File dir =new File("abc\\kk");System.out.println("mkdir:"+dir.mkdir());}

2.删除。
boolean delete();删除失败返回false。

void deleteOnExit();在程序退出时删除指定文件。

public static void method() throws IOException{File f=new File("file.txt");f.deleteOnExit();System.out.println("delete:"+f.delete());}

3.判断。
boolean exists();文件是否存在。
isFile(); 是否是文件
isDirectory();是否是目录
isHidden(); 是否隐藏

isAbsolute();是否是绝对路径

public static void method() throws IOException{File f=new File("E:\\java\\exam\\file.txt");//在判断文件对象是否是文件对象或者目录事,必须先判断该文件对象封装的内容是否存在。//通过exists判断。System.out.println("dir:"+f.isDirectory());System.out.println("file:"+f.isFile());System.out.println("absolute:"+f.isAbsolute());}

4.获取信息。
getName();
getPath();
getParent();
getAbolutePath();
long lastMoidfied();

long length();

public static void method(){File f=new File("file.txt");System.out.println("path:"+f.getPath());System.out.println("abspath:"+f.getAbsolutePath());System.out.println("parent:"+f.getParent());//该方法返回的是绝对路径中的父目录//如果获取的是相对路径,返回null//如果相对路径中有上一层目录那么该目录就是返回结果。}
5.移动文件。

renameTo();

public static void method(){File f1=new File("E:\\java\\exam\\123.jpg");File f2=new File("E:\\java\\exam\\111.jpg");System.out.println("rename:"+f2.renameTo(f1));//可移动,类似于复制}


练习:列出指定目录下文件或者文件夹,包含子目录中的内容。也就是列出指定目录下所有内容。

因为目录中海油目录,只要视同同一个列出目录功能的函数即可。

在列出过程中出现的还是目录的话,还可以再次调用本功能。也就是函数自身调用自身。

这种表现形式,或者编程手法,成为递归。

递归要注意:

1.限定条件

2.要注意递归的次数。尽量避免内存溢出。

class Demo{public static void main(String[] args){File dir=new File("E:\\java\\exam");showDir(dir,0);}public static void showDir(File dir,int level){System.out.println(getLevel(level)+dir);level++;File[] files=dir.listFiles();for(File f:files){if(f.isDirectory()){showDir(f,level);}elseSystem.out.println(getLevel(level)+f);}}public static String getLevel(int level){StringBuilder sb=new StringBuilder();sb.append("|--");for(int x=0;x<level;x++){//sb.append("|--");sb.append("--");//sb.insert(0,"|  ");}return sb.toString();}}




0 0
原创粉丝点击