您的位置:首页 > 职场人生

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

2015-06-21 00:14 429 查看
------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);
}
else
System.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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 黑马程序员