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

“黑马程序员"File

2013-07-05 13:03 351 查看
----- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流!
----------

/*
File类的常见方法:
1.创建。
boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。
和输出流不一样,输出流对象一建立创建文件,而且文件已经存在,会覆盖。
boolean mkdir():创建文件夹
boolean mkdirs():创建多级文件夹
2.删除。
boolean delete();删除失败返回false
void deleteOnExit();在程序退出时删除指定文件
3.判断。
boolean exists():文件是否存在
boolean isFile():是否是文件
boolean isDirectory():是否是文件夹
boolean isHidden():是否隐藏文件
boolean isAbsolute():是否是绝对路径
4.获取信息。
getName():
getPath();
getParent();

getAbsolutePath():
long lastModified();
long length():

*/
class FileDemo
{
public static void main(String[] args)throws IOException
{
//consMethod();
method_5();
}

public static void method_5()
{
File f1 = new File("c:\\遗忘录.txt");
File f2 = new File("c:\\hahaha.txt");
sop("rename:"+f1.renameTo(f2));
}
public static void method_4()throws IOException
{
File f = new File("D:\\java5564\\day20\\FileDemo.java");

sop("path:"+f.getPath());
sop("abspath:"+f.getAbsolutePath());
sop("parent:"+f.getParent());//该方法返回的是绝对路径中的文件父目录。如果获取的是相对路径,返回null。
sop("length:"+f.length()); //如果相对路径中有上一层目录那么该目录就是返回结果。
sop("last:"+f.lastModified());
sop("name:"+f.getName());

}

public static void method_3()throws IOException
{
File f = new File("file.txt");

//f.createNewFile();
//f.mkdir();

//记住在判断文件对象是否是文件或者目录时,必须要先判断该文件对象封装的内容是否存在
//通过exists判断。
sop("dir:"+f.isDirectory());
sop("file:"+f.isFile());

sop(f.isAbsolute());
}

public static void method_2()
{
File f = new File("file.txt");

sop("exists:"+f.exists());

//sop("execute:"+f.canExecute());

//创建文件夹
File dir = new File("abc");

sop("mkdir:"+dir.mkdir());

}
public static void method_1()throws IOException
{
File f = new File("file.txt");
f.deleteOnExit();
//sop("create:"+f.createNewFile());
sop("delete:"+f.delete());

}

//创建File对象
public static void consMethod()
{
//将a.txt封装成File对象,可以将已有的和未出现的文件或者文件夹封装成对象。
File f1= new File("a.txt");

//
File f2 = new File("c:"+File.separator+"abc","b.txt");

File d = new File("c:"+File.separator+"abc");
File f3 = new File(d,"c.txt");

sop("f1:"+f1);
sop("f2:"+f2);
sop("f3:"+f3);
}

public static void sop(Object obj)
{
System.out.println(obj);
}
}
——————————————————————————————————————————————

import java.io.*;
class FileDemo2
{
public static void main(String[] args)
{
File dir = new File("c:\\");
File[] files = dir.listFiles();

for(File f : files)
{
System.out.println(f.getName()+":"+f.length());
}
}

public static void listDemo_2()
{
File dir = new File("d:\\java5564\\day18");
String[] arr = dir.list(new FilenameFilter()
{
public boolean accept(File dir,String name)
{
//System.out.println("dir:"+dir+"...name:"+name);
/*
if(name.endsWith(".java"))
return true;
else
return false;
*/
return name.endsWith(".java");

}
});

System.out.println("len:"+arr.length);

for(String name :arr)
{
System.out.println(name);
}
}

public static void listDemo()
{
File f = new File("d:\\java5564\\day19");
String[] names = f.list();//调用list方法的File对象必须是封装了一个目录。该目录必须存在。
for (String name : names )
{
System.out.println(name);
}
}
public static void listRootsDemo()
{
File[] files = File.listRoots();

for (File f : files )
{
System.out.println();
}
}
}

/*
练习
将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。
建立一个java文件列表文件。

思路:
1.对指定的目录进行递归。
2.获取在递归过程中所有的java文件的路径。
3.将这些路径存储到集合中。
4.将集合中的数据写入到一个文件中。

*/

import java.io.*;
import java.util.*;
class JavaFileList
{
public static void main(String[] args)throws IOException
{
File dir = new File("d:\\java5564");
List<File>list = new ArrayList<File>();
fileToList(dir,list);

//System.out.println(list.size());
File file = new File(dir,"java.txt");
writeToFile(list,file.toString());

}
public static void fileToList(File dir,List<File> list)
{
File[] files = dir.listFiles();
for(File file : files)
{
if(file.isDirectory())
fileToList(file,list);
else
{
if(file.getName().endsWith(".java"))
list.add(file);
}

}
}

public static void writeToFile(List<File>list,String javaFileList)throws IOException
{
BufferedWriter bufw = null;
try
{
bufw = new BufferedWriter(new FileWriter(javaFileList));

for(File f : list)
{
String path = f.getAbsolutePath();
bufw.write(path);
bufw.newLine();
bufw.flush();
}
}
catch (IOException e)
{
throw e;
}
finally
{
try
{
if(bufw!=null)
bufw.close();
}
catch (IOException e)
{
throw e;
}
}
}
}

——————————————————————————————————————————————

/*
删除一个带内容的目录。
删除原理:
在windows中,删除目录从里面往外删除的。

既然是从里往外删除,就需要用到递归。

*/
import java.io.*;
class RemoveDir
{
public static void main(String[] args)
{
File dir = new File("D:\\workspace1");
removeDir(dir);
}

public static void removeDir(File dir)
{
File[] files = dir.listFiles();

for(int x=0 ; x<files.length; x++)
{
if(files[x].isDirectory())
removeDir(files[x]);
else
System.out.println(files[x].toString()+":-file-:"+files[x].delete());
}

System.out.println(dir+"::dir::"+dir.delete());
}
}

/*

----- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

9759
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息