黑马程序员22-2: 文件(流)操作,目录,属性,过滤器FileFilter优化与使用

[align=center]------- [url=http://edu.csdn.net/heima]android培训 [/url]、[url=http://edu.csdn.net/heima]java培训[/url]、期待与您交流!------- [/align]


constructorDemo:

package cn.itcast.io.p2.file.demo;

import java.io.File;

public class FileDemo {

/**
* @param args
*/
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");
System.out.println(f1);
}
}

FileListDemo :

package cn.itcast.io.p2.file.demo;

import java.io.File;

import cn.itcast.io.p2.filter.FilterByHidden;
import cn.itcast.io.p2.filter.SuffixFilter;

public class FileListDemo {

/**
* @param args
*/
public static void main(String[] args) {

listDemo_2();
}
public static void listDemo_3() {

File dir = new File("c:\\");
//new使用过滤器接口,返回隐藏文件,
File[] files = dir.listFiles(new FilterByHidden());

for(File file : files){
System.out.println(file);
}
}

public static void listDemo_2() {

File dir = new File("c:\\");
SuffixFilter返回任意传过来的扩展名,优化过滤器;FilterByJava返回指定扩展名的文件
String[] names = dir.list(new SuffixFilter(".txt"));

for(String name : names){
System.out.println(name);
}

}


public static void listDemo() {
File file = new File("c:\\");

/*
* 获取当前目录下的文件以及文件夹的名称,包含隐藏文件。
* 调用list方法的File对象中封装的必须是目录。
* 否则会发生NullPointerException
* 如果访问的系统级目录也会发生空指针异常。
*
* 如果目录存在但是没有内容,会返回一个数组,但是长度为0.
*
*/
String[] names = file.list();
System.out.println(names.length);

for(String name : names){
System.out.println(name);
}
}
}


FileMethodDemo :

package cn.itcast.io.p2.file.demo;

import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.util.Date;

public class FileMethodDemo {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {

/*
* File对象的常见方法。
*
* 1,获取。
* 1.1 获取文件名称。
* 1.2 获取文件路径。
* 1.3 获取文件大小。
* 1.4 获取文件修改时间。
*
* 2,创建与删除。
*
* 3,判断。
*
* 4, 重命名
*
*/
getDemo();
// createAndDeleteDemo();
// isDemo();
// renameToDemo();

// listRootsDemo();
}

public static void listRootsDemo() {

File file = new File("d:\\");
//取空间大小
System.out.println("getFreeSpace:"+file.getFreeSpace());
System.out.println("getTotalSpace:"+file.getTotalSpace());
System.out.println("getUsableSpace:"+file.getUsableSpace());

// File[] files = File.listRoots();
// for(File file : files){
// System.out.println(file);
// }
}

public static void renameToDemo() {

File f1 = new File("c:\\9.mp3");

File f2 = new File("d:\\aa.mp3");
//剪切粘贴文件
boolean b = f1.renameTo(f2);

System.out.println("b="+b);
}

public static void isDemo() throws IOException{
File f = new File("aaa");
//创建目录
// f.mkdir();
//创建文件,如果文件已有存在,就不创建,不存在就创建
f.createNewFile();

// boolean b = f.exists();
// System.out.println("b="+b);
// 最好先判断是否存在。
System.out.println(f.isFile());
System.out.println(f.isDirectory());


}

public static void createAndDeleteDemo() throws IOException {

File dir = new File("abc\\q\\e\\c\\z\\r\\w\\y\\f\\e\\g\\s");

// boolean b = dir.mkdir();//make directory
// System.out.println("b="+b);
// dir.mkdirs();//创建多级目录
//删除目录
System.out.println(dir.delete());

// System.out.println(dir.delete());


// 文件的创建和删除。
// File file = new File("file.txt");

/*
* 和输出流不一样,如果文件不存在,则创建,如果文件存在,则不创建。
*
*/
// boolean b = file.createNewFile();
// System.out.println("b="+b);

// boolean b = file.delete();
// System.out.println("b="+b);

}

public static void getDemo(){
// File file = new File("E:\\java0331\\day22e\\a.txt");
File file = new File("a.txt");

String name = file.getName();

String absPath = file.getAbsolutePath();//绝对路径。
//当前文件名(有可能含目录,即相对路径)
String path = file.getPath();
//文件路径长度
long len = file.length();
//更新时间
long time = file.lastModified();

Date date = new Date(time);

DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);

String str_time = dateFormat.format(date);

System.out.println("parent:"+file.getParent());

System.out.println("name:"+name);
System.out.println("absPath:"+absPath);
System.out.println("path:"+path);
System.out.println("len:"+len);
System.out.println("time:"+time);
System.out.println("str_time:"+str_time);

}
}

FilterByHidden implements FileFilter:

package cn.itcast.io.p2.filter;

import java.io.File;
import java.io.FileFilter;

public class FilterByHidden implements FileFilter {

@Override
public boolean accept(File pathname) {
//返回包含隐藏的文件
return !pathname.isHidden();
}

}


FilterByJava implements FilenameFilter:

package cn.itcast.io.p2.filter;

import java.io.File;
import java.io.FilenameFilter;

public class FilterByJava implements FilenameFilter {

@Override
public boolean accept(File dir, String name) {

// System.out.println(dir+"---"+name);
//返回所有扩展名为.txt的文件
return name.endsWith(".txt");
}

}


SuffixFilter implements FilenameFilter :

package cn.itcast.io.p2.filter;

import java.io.File;
import java.io.FilenameFilter;

public class SuffixFilter implements FilenameFilter {

private String suffix ;
public SuffixFilter(String suffix) {
super();
this.suffix = suffix;
}
//返回任意传过来的扩展名,优化过滤器
@Override
public boolean accept(File dir, String name) {

return name.endsWith(suffix);
}

}



[align=center]------- [url=http://edu.csdn.net/heima]android培训 [/url]、[url=http://edu.csdn.net/heima]java培训[/url]、期待与您交流!------- [/align]

[align=center]详细请查看:[url=http://edu.csdn.net/heima]http://edu.csdn.net/heima [/url]------- [/align]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值