File
:用来封装文件或者文件夹的对象
File的几种构造方法
Filef1 = new File("C:\\a.txt");
Filef2 = new File("C:\\","a.txt");
Filef3 = new File("c:\\");
Filef4 = new File(f3,"a.txt");
Filef5 = new File("c:"+File.separator+"a.txt");
File.separator= = System.getProperty("file.separator");
获取
publicstatic void getDemo(){
Filef = new File("a.txt"); //相对路径定义对象
Stringname = f.getName();//得到文件的名字
StringabsPath = f.getAbsolutePath();//得到文件的绝对路径
Stringpath = f.getPath();//得到文件的相对路径
longlen = f.length();//得到文件的大小
longtime =f.lastModified();//得到文件最后修改时间
//SimpleDateFormatsdf = new SimpleDateFormat("yyyy-MM-dd");
//DateFormatdf = DateFormat.getInstance();//只能以默认方式
DateFormatdf = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
Dated = new Date(time);
StringtimeStr = df.format(d);
lastModified()方法的用处:往往是判断文件是否修改,如果修改则从新读取
也就是从新开辟一个线程,用来监视该文件,每三秒监视一次
创建:
Filefile = new File("a.txt");//将文件封装成对象。
booleanb = file.createNewFile();
返回true则创建成功,否则创建失败
和输出流不一样,如果原来文件不存在,则创建,如果原来文件存在,则不创建
创建目录
Filedir = new File("cc");
booleanb = dir.mkdir();//创建单级目录
booleanb = dir.mkdirs();//创建多级目录
删除目录:dir.delete(),如果是多级目录删除的是最里面的目录
删除:file.delete(),如果返回是true,则删除成功
判断:
判断是不是文件,是不是目录,最好先判断是否存在
while(file.exists()){
booleanb1 = file.isFile();
booleanb2 = file.isDirectory();
}
重命名:renameTo(Filedes)
Filef1 = new File("c:\\a.txt");
Filef2 = new File("c:\\b.txt");
f1.renameTo(f2);
将a.txt重命名为b.txt
如果将f2改为newFile("D:\\b.txt");
则结果是在D盘中用b.txt而c盘无了。也就是剪切
对盘符的操作;
遍历盘符:
File[]file = File.listRoots();
Filefile1 = new File("D:\\");
file1.getFreeSpace();
file1.getTotalSpace();
file1.getUsablespace();
应用:获取最大盘符
publicstatic void checkPF() {
File[]file = File.listRoots();
long len = -1;
Fileff = null;
for(Filef:file){
if(f.getFreeSpace()>len){
len= f.getFreeSpace();
ff= f;
}
//System.out.println(f);
}
System.out.println(ff);
}
list方法
Filefile = new File("c:\\");
String[]names = file.list();
获取当前目录下的文件及文件夹的名称,包含隐藏文件
调用list方法的File对象中封装的必须是目录。
否则会发生空指针异常
如果访问的是系统级目录也会发生空指针异常
如果目录存在但是没有内容,会返回一个数组,但是长度为0