您的位置:首页 > 编程语言 > Java开发

IO流----File类的常用方法

2016-05-09 20:24 531 查看
package com.qf.day18_3;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Date;
/**
* File类
*
* @author wgy
*
*/
public class Demo1 {

public static void main(String[] args) throws Exception {
// separator();
// fileConstructor();
//fileOpe();
//rename();
directoryOpe();
//		rename2();
//listFiles();
}

// 分隔符
public static void separator() {
// 路径分隔符
System.out.println(File.pathSeparator);
System.out.println(File.pathSeparatorChar);
// 名称分隔符
System.out.println(File.separator);
System.out.println(File.separatorChar);
}

// File构造方法
public static void fileConstructor() {
// 创建File对象
File myFile = new File("d:\\image\\haha.jpg");
File myFile2 = new File("d:\\image", "4.jpg");
File parent = new File("d:\\image");
File myFile3 = new File(parent, "4.jpg");
File myFile4 = new File(parent, "haha.jpg");
File myFile5 = new File("d:\\xxx\\yyy\\a.jpg");

System.out.println(myFile);
System.out.println(myFile2);
System.out.println(myFile5);

}

/**
* 文件操作 创建 删除 判断 获取 重命名
*/
public static void fileOpe() throws Exception {
// 创建File对象 绝对路径 相对路径
File file = new File("d:\\a.txt");

// 1创建(如果文件不存在,则创建返回true,如果存在则不创建,返回false)
boolean b = file.createNewFile();
System.out.println("创建文件" + b);
// 2删除
// 2.1直接删除
boolean b2=file.delete();
// System.out.println("删除文件"+b2);
// 2.2jvm删除 (没有直接删除,当jvm退出时删除)
// file.deleteOnExit();
// Thread.sleep(5000);
// 3判断
System.out.println("canExecute()" + file.canExecute());// 是否可执行
System.out.println("canRead()" + file.canRead());// 是否可读
System.out.println("canWrite()" + file.canWrite());// 是否可写
System.out.println("exists()" + file.exists());// 是否存在
System.out.println("isAbsolute()" + file.isAbsolute());// 是否是绝对路径
System.out.println("isFile()" + file.isFile());// 是否是文件
System.out.println("isHidden()" + file.isHidden());// 是否是隐藏
// 4获取
System.out.println(file.getAbsolutePath()); // 获取绝对路径名 //字符串
System.out.println(file.getAbsoluteFile()); // 获取绝对文件名称 返回类型File
System.out.println(file.getCanonicalPath());// 获取规范绝对路径名
System.out.println(file.getName()); // 获取文件名
System.out.println(file.getPath()); // 获取路径

System.out.println(new Date(file.lastModified()).toLocaleString());// 文件最后修改日期
System.out.println(file.length()); // 文件长度

}
/**
* 文件重命名
*/
public static void rename(){
File file=new File("d:\\a.txt");
File newFile=new File("d:\\mywork\\b.txt");
file.renameTo(newFile);//修改名称
}
/**
* 文件夹操作  创建 删除 判断 获取 重命名
*/
public static void directoryOpe(){
//创建File
File dir=new File("d:\\xxx\\yyy\\zzz");
//1创建
//boolean b=dir.mkdir();//创建一级文件夹
boolean b2=dir.mkdirs();//创建多级文件夹
System.out.println(b2);
//2删除
//2.1直接删除 (只能删除一级 ,只能是空目录)
//		boolean b3=dir.delete();
//		System.out.println(b3);
//2.2jvm删除
//dir.deleteOnExit();
//3判断
System.out.println("exists()"+dir.exists()); //是否存在
System.out.println("isAbsolute()"+dir.isAbsolute());//是否是绝对路径
System.out.println("isDirectory()"+dir.isDirectory());//是否是目录
System.out.println("isHidden()"+dir.isHidden());//是否是隐藏
//4获取
System.out.println("getAbsolutePath"+dir.getAbsolutePath()); //获取绝对路径
System.out.println("getName()"+dir.getName());
System.out.println("getPath()"+dir.getPath());
//System.out.println("lastModified"+dir.lastModified());

//
}
/**
* 文件夹重命名
*/
public static void rename2(){
File dir=new File("d:\\xxx\\yyy\\zzz");
File newDir=new File("d:\\xxx\\yyy\\hahah");
dir.renameTo(newDir);
}
/**
* 列出文件夹下面的文件和子文件
*/
public static void listFiles(){
//1列出所有的
File dir=new File("D:\\image");
//		String[] files=dir.list();
//		for (String string : files) {
//			System.out.println(string);
//		}
//2过滤文件
String[] files2=dir.list(new FilenameFilter() {
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
if(name.endsWith(".png")){
return true;
}
return false;
}
});
for (String string : files2) {
System.out.println(string);
}
}

}

File递归删除文件夹中的所有内容



import java.io.File;

public class Demo4 {

public static void main(String[] args) {
// TODO Auto-generated method stub
delDir(new File("d:\\xxx"));
}
public static void delDir(File dir){
File[] files = dir.listFiles();
if(files!=null){
for (File file : files) {
if (file.isDirectory()) {
delDir(file);
}else {
System.out.println(file.toString()+file.delete());//删除文件
}
}
System.out.println(dir.toString()+dir.delete());//删除目录
}
}
}


File类递归遍历文件夹

// level用来记录当前递归的层次
public static void listChilds(File f, int level) {
// 生成有层次感的空格
StringBuffer sb = new StringBuffer("|--");
for (int i = 0; i < level; i++) {
sb.insert(0, "|  ");
}

File[] childs = f.listFiles();
// 递归出口
int length = childs == null ? 0 : childs.length;
for (int i = 0; i < length; i++) {
System.out.println(sb.toString() + childs[i].getName());
if(childs[i].isDirectory()){
listChilds(childs[i], level + 1);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java io流