import java.io.File;
import java.io.IOException;
/*
* File类
* 文件和文件夹(目录),统称为文件
*/
public class Test03
{
public static void main(String[] args) throws Exception
{
/*
* 创建一个File文件对象,表示文件
*/
// 1.通过指定文件的全路径
// File file=new File("D:\\Java\\hello.txt");
File file = new File("D:/Java/db.txt");
// File file = new File("/home/soft01/hello.txt");
// 2.通过父目录对象和文件名
File f = new File("D:\\Java\\");
File file2 = new File(f, "hello.txt");
// 3.通过父目录的路径和文件名
File file3 = new File("D:\\Java\\", "hello.txt");
// 访问文件属性
System.out.println("文件名:" + file.getName());
System.out.println("路径名:" + file.getPath());
System.out.println("绝对路径名:" + file.getAbsolutePath());
System.out.println("父目录:" + file.getParent());
System.out.println("父目录文件对象:" + file.getParentFile());
System.out.println("长度:" + file.length());
System.out.println(file);// 直接输出File对象,会输出其全路径
System.out.println("是否可读:" + file.canRead());
System.out.println("是否可写:" + file.canWrite());
System.out.println("********************\n");
// 文件操作
if (file.exists())
{
System.out.println("文件存在!");
} else
{
System.out.println("文件不存在!创建一个新的空文件");
file.createNewFile();// 创建空文件
}
if (file.isDirectory())
{
System.out.println("这是一个目录!");
} else if (file.isFile())
{
System.out.println("这是一个文件");
System.out.println("文件名:" + file.getName());
System.out.println("长度:" + file.length());
file.delete();// 删除文件
file.createNewFile();// 重新创建一个空的文件
System.out.println("新文件的长度:" + file.length());
}
System.out.println("***********************\n");
/*
* 创建一个File对象,表示目录
*/
File file4 = new File("/home/soft01/");
if (file4.exists())
{// 判断是否存在
System.out.println("文件存在");
} else
{
System.out.println("文件不存在");
if (file4.isFile())
{ // 判断是否是文件
System.out.println("创建一个空文件");
file4.createNewFile();// 创建文件
} else
{
System.out.println("创建一个空目录");
// file4.mkdir();//创建目录,如果父目录不存在,则创建失败
file4.mkdirs();// 创建目录,如果父目录不存在,则级联创建
}
}
// 列出当前目录下的文件名称
System.out.println("*****************列出当前目录下的文件名称");
String[] dirList = file4.list();// 获取当前目录下的所有文件名的字符串数组
for (String str : dirList)
{
System.out.println(str);
}
//列出当前目录下的文件详细信息
System.out.println("*******************列出当前目录下的文件详细信息");
File[] files = file4.listFiles();// 获取当前目录下的所有文件的File数组
for(File f2:files){
System.out.println("文件名:"+f2.getName()+",大小:"+f2.length());
}
}
}
/*
* 递归:方法本身调用自己,可能会出现永远止境的调用自己,所以要注意退出的条件
*/
public class Test04
{
public static void main(String[] args)
{
System.out.println(calc(3,5));
}
// 求x的y幂次方
public static int calc(int x, int y)
{
if (y == 0)
{
return 1;
}
if (y == 1)
{
return x;
}
return x*calc(x,y-1);
//return x*calc(x,--y);
//return x*calc(x,y--);//会抛出栈空间溢出异常
}
}
/*
* 递归显示目录下的所有文件,包括子目录下的文件
*/
public class Test05
{
public static void main(String[] args)
{
File file = new File("D:\\Java\\ppt");
System.out.println("当前目录下的文件:");
dg(file);
}
// 递归显示目录下的所有文件
public static void dg(File file)
{
if (!file.exists())// 判断是否存在
{
System.out.println("目录不存在!");
return;
}
if (file.isDirectory())
{ // 判断是否为目录
File[] files = file.listFiles();// 获取当前目录下的所有文件对象
for (int i = 0; i < files.length; i++)// 循环遍历目录下的所有文件对象
{
dg(files[i]);// 递归调用
}
} else
{
System.out.println(file);// 如果是文件,直接输出其路径
}
}
}
原文:http://blog.csdn.net/wangzi11322/article/details/44671589