File类
1.用来将文件或者文件夹封装成对象
2.方便对文件与文件夹的属性信息进行操作。
3.File对象可以作为参数传递给流的构造函数。
4.了解File类中的常用方法。
File对象-构造函数&字段
public class Io31_1 {
public static void main(String[] args) {
constructorDemo();
}
public static void constructorDemo(){
//可以将一个已存在的,或者不存在的文件或者目录封装成file对象
File f1=new File("c:\\a.txt");
/* File f2=new File("c:\\","a.txt");
File f=new File("c:\\");
File f3=new File(f,"a.txt");
File f4=new File("c:"+File.separator+"abc"+File.separator+"a.txt");//separator使用当前系统的文件分割符。例如window下是\\ unix是/
*/
}
}
File对象-常见功能-获取
public class Io32_1 {
public static void main(String[] args) {
/*
* File对象的常见方法。
*
* 1.获取
* 1.1:获取文件名称
* 1.2:获取文件路径
* 1.3:获取文件大小
* 1.4:获取文件修改时间
*
* */
getDemo();
}
public static void getDemo(){
File file=new File("E:\\io\\a.txt");
// File file=new File("a.txt");
String name=file.getName();
String path=file.getAbsolutePath();//绝对路径
String path2=file.getPath();
long len=file.length();
long time=file.lastModified();
System.out.println("name"+name);
System.out.println("path"+path);
System.out.println("path2"+path2);
System.out.println("len"+len);
System.out.println("time"+time);
Date date=new Date(time);
DateFormat dateFormat=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
String str_time=dateFormat.format(date);
System.out.println(str_time);
}
}
File对象-常见功能-创建和删除
public class Io33_1 {
public static void main(String[] args) {
}
public static void createAndDeleter() throws IOException{
//文件的创建和删除
// File file=new File("file.txt");
/*
* 和输出流不一样,如果文件不存在,则创建,如果文本存在,则不创建
* */
//
// boolean b=file.createNewFile();
// System.out.println("b="+b);
// boolean b=file.delete();
/**/ File dir=new File("abc");//创建单级目录
boolean b=dir.mkdir();//make directory
System.out.println(dir.delete());
// File dir=new File("anc\\q\\e\\c\\z\\w\\w\\d\\s");//创建多级目录
// dir.mkdirs();
// dir.delete();//删除最里面的那个文件夹
}
}
File对象-常见功能-判断
public class Io34_1 {
public static void main(String[] args) {
isDemo();
}
public static void isDemo(){
File f=new File("E:\\io");
boolean b=f.exists();
System.out.println("b="+b);
//最好先判断是否存在
System.out.println(f.isFile());
System.out.println(f.isDirectory());
}
}
File对象-常见功能-重命名
public class Io35_1 {
public static void main(String[] args) {
renameToDemo();
}
public static void renameToDemo(){
File f1=new File("c:\\0.mp3");
File f2=new File("c:\\9.mp3");
boolean b=f1.renameTo(f2); //把f1的0.mp3名称改为9.MP3
System.out.println("b="+b);
/* File f1=new File("c:\\0.mp3");
File f2=new File("d:\\aa.mp3");
boolean b=f1.renameTo(f2);//把0.map剪切到D盘中,并且把名字重命名为aa.mp3
System.out.println("b="+b);*/
}
}
File对象-常见功能-系统根目录和容量获取
public class Io36_1 {
public static void main(String[] args) {
listRootsDemo();
}
public static void listRootsDemo(){
/* File file=new File("d:\\");
System.out.println(file.getFreeSpace());
System.out.println(file.getTotalSpace());
System.out.println(file.getUsableSpace());*/
File[] files=File.listRoots();
for(File file:files){
System.out.println(file);
}
}
}
File对象-常见功能-获取目录内容
public class Io37_1 {
public static void main(String[] args) {
listDemo();
}
public static void listDemo(){
/**
* 获取当前目录下的文件以及文件夹的名称。
* 包含隐藏文件。
*
* 调用list方法的File对象中封装的必须是目录。
* 否则会空指针
*
* 如果访问系统级目录页会发生空指针(是指操作系统的主要文件存放的目录。因为权限)
*
* 如果目录存在但是没有内容。会返回一个数组。但是长度为0;
*
*
* */
File file=new File("E:\\io");
String[] names=file.list();
System.out.println(names.length);
for(String name : names){
System.out.println(name);
}
}
}
File对象-常见功能-过滤器
public class Io38_1 {
public static void main(String[] args) {
listDemo_3();
}
/**
* 获取整个盘下面的文件。然后根据条件过滤
* */
public static void listDemo2() {
File dir = new File("c:\\");
String[] names = dir.list(new FileByJava());
//list方法拿取的是文件的名称。
for (String name : names) {
System.out.println(name);
}
}
/**
* 返回文件类型数组,然后判断是否是隐藏文件
* */
public static void listDemo_3(){
File dir=new File("c:\\");
File[] files=dir.listFiles(new FileByHidden());
//listFiles()拿取文件对象。
for(File file:files){
System.out.println(file);
}
}
}
public class FileByJava implements FilenameFilter {//这个是文件名称过滤
/**
* 获取后缀名为.dtd的文件。
* */
@Override
public boolean accept(File dir, String name) {
System.out.println(dir+name);
return name.endsWith(".dtd");
}
}
public class FileByHidden implements FileFilter {//这个是文件过滤
//判断是否是隐藏文件
@Override
public boolean accept(File pathname) {
return !pathname.isHidden();
}
}