------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
package src.com.itheima.file;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* File类的常见方法:
* 1 创建
* boolean createNewFile:
* 在指定位置创建文件,如果该文件已经存在,则不创建,返回false.
* 和输出流不一样,输出流对象建立时创建文件,如果文件存在,则会覆盖.
* boolean mkdir():创建目录,创建文件夹
* boolean mkdirs():创建多级文件夹.
* 2 删除
* boolean delete:删除失败返回false.
* void deleteOnExit():在程序退出时删除指定对象
* 3 判断
* boolean exists():是否存在该文件(优先判断,当判断文件夹是否存在,或者文件是否存在时要先判断是否为空)
* boolean isDirectory():判断是否是文件夹
* boolean isFile():判断是否是文件
* boolean isHidden():是否隐藏
*
* 4 获取信息
* String getName();获取名称
* String getParent():获取所在文件夹(绝对路径中的文件父目录)
* 如果相对路径中有上一层目录,该目录就是返回结果
* String getPath():获取路径(封装的什么路径就获得什么路径)
* String getAbsolutePath():获取路径(获取文件绝对路径)
* long lastModify():最后一次修改时间
* long length():长度
* @author SUN
*
*/
public class FileDemo {
public static void main(String[] args) {
//main();
//fileMath();
//test();
// fileMath_7(new File("K:\\abc"));
List list =new ArrayList();
fileMath_8(new File("D:\\tjqs20140126\\exam\\src\\com\\itheima\\zijieliu"),list);
fileMath_9(list);
}
/**
* 获得文件夹下.java的文件,并存储到一个集合中,并且存入文件中
*/
public static void fileMath_8(File f,List list){
if(f.exists()){
File []fs=f.listFiles();
if(fs!=null){
for(int i=0;i<fs.length;i++){
if(fs[i].isFile()){
if(fs[i].toString().endsWith(".java"))
list.add(fs[i].toString());
}else{
fileMath_8(fs[i],list);
}
}
}
}
}
public static void fileMath_9(List list){
BufferedWriter bw=null;
try{
bw=new BufferedWriter(new FileWriter("K:\\mulu.txt"));
for(int i=0;i<list.size();i++){
bw.write(list.get(i).toString());
bw.newLine();
}
}catch(IOException e){
throw new RuntimeException("写入失败");
}finally{
if(bw!=null){
try {
bw.close();
} catch (IOException e) {
throw new RuntimeException ("关闭输出流失败");
}
}
}
}
/**
* 删除个带内容的目录
*/
public static void fileMath_7(File f){
if(f.exists()){
File [] fs=f.listFiles();
System.out.println(fs.length);
if(fs!=null&&fs.length!=0){
for(int i=0;i<fs.length;i++){
if(fs[i].isFile()){
fs[i].delete();
}else{
fileMath_7(fs[i]);
}
}
}else{
f.delete();
}
}else{
System.out.println("没有可删除的目录");
}
}
/**
* 列出指定目录下文件或者文件夹,包含子目录中的内容
* 也就是列出指定目录下所有内容
*
*/
public static void fileMath_6(File f){
System.out.println(f);
if(f.exists()){
File []fs=f.listFiles();
if(fs!=null){
for(int i=0;i<fs.length;i++){
if(fs[i].isFile()){
System.out.println(fs[i]);
}else{
fileMath_6(fs[i] );
}
}
}else{
System.out.println(f);
}
}
}
public static void fileMath_5(){
File[] files=File.listRoots();
for(int i=0;i<files.length;i++){
sop(files[i]);
}
File f=new File("K:\\");
String [] names=f.list();//调用list方法的file对象必须封装个目录,该目录还必须存在
for(int i=0;i<names.length;i++){
System.out.println(names[i]);
}
}
public static void fileMath_4(){
File f=new File("K:\\abc\\file.txt");
sop("name:"+f.getName());
sop("parent:"+f.getParent());
sop("path:"+f.getPath());
sop("绝对路径:"+f.getAbsolutePath());
sop("file路径:"+f.getAbsoluteFile());
sop("time:"+f.lastModified());
sop("length:"+f.length());
}
public static void fileMath_3(){
File f=new File("K:\\abc\\file.text");
try{f.createNewFile();
}catch(Exception e){}
//记住:在判断文件对象是否是文件时,必须要先判断该文件对象封装的内容是否存在
//通过exists判断
boolean b=f.exists();sop(b+"");
b=f.isDirectory();sop(b+"");
b=f.isFile();sop(b+"");
b=f.isDirectory();
sop(b+"");
}
public static void fileMath_2(){
File f=new File("K:\\file.txt");
f.deleteOnExit();
try {
f.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void fileMath(){
File f=new File("K:\\file.txt");
try {
sop(""+f.createNewFile());
f.deleteOnExit();
sop(""+f.delete());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//创建File对象
public static void main() {
//将a.txt封装成File对象,可以将已有的和未出现的文件或文件夹封装成file对象
File f1=new File("a.txt");
//第二种方式
File f2=new File("K","demo.txt");
//第三种方式
File D=new File("c");
File f3=new File(D,"abc.txt");
//第四种 跨平台 分隔符,再linux下也可以用
File f4=new File("k"+File.separator+"abc"+File.separator+"1.txt");
//只打印相对路径,封装的什么路径打印什么
sop(f2);
}
public static void sop(Object obj){
System.out.println(obj);
}
public static void test(){
File f=new File("K:\\demo.txt");
File f2=new File("K:\\abc");
System.out.println(f2.mkdir());
f.deleteOnExit();
System.out.println(f.exists());
try {
sop(""+f.createNewFile());
} catch (IOException e) {
throw new RuntimeException("文件创建失败");
}
System.out.println(f.exists());
}
}