java File类
今天我要总结一下java File类。这个是一个很重要的类。
首先是我画的思维导图。
还写了一些自己写的代码。
/**
* Date : 2017/6/24
* Author : Hsj
* Description :
*/
public class Demo {
/**
* File(pathname)表示文件或文件夹路径
* File(String parent,child);
* File(File parent,child);
*/
@Test
public void fun() {
//第一种构造方法
File file = new File("F:\\BaiduYunDownload\\01、第一阶段java基础(更多视频教程 www.pcsky.wang)\\day19\\day19\\video\\001_今日内容.avi");
System.out.println("文件路径是否存在:" + file.exists());
File file2 = new File("ddd.txt");//项目文件夹
System.out.println(file2.exists());
//第二种构造方法
String parent = "F:\\BaiduYunDownload\\01、第一阶段java基础(更多视频教程 www.pcsky.wang)\\day19\\day19\\video";
String child = "001_今日内容.avi";
File file3 = new File(parent, child);
System.out.println(file3.exists());
//第三种构造函数
File file4 = new File("F:\\BaiduYunDownload\\01、第一阶段java基础(更多视频教程 www.pcsky.wang)\\day19\\day19\\video");//封装成File
String child2 = "001_今日内容.avi";
File file5 = new File(file4, child2);
System.out.println(file5.exists());
}
/**
* 创建文件
* createNewFile();//创建文件夹,有就创建返回true,没有就放回false
* mkdir();创建文件夹
* mkdirs()创建文件夹和父文件夹
*/
@Test
public void fun2() {
/* File file = new File("yyy.txt");
try {
boolean newFile = file.createNewFile();
System.out.println(newFile);
} catch (IOException e) {
e.printStackTrace();
}*/
/* File file2 = new File("make");
boolean mkdir = file2.mkdir();
System.out.println(mkdir);*/
File file3 = new File("make//make//m");
boolean mkdirs = file3.mkdirs();
System.out.println(mkdirs);
}
/**
* renameTo()重命名或者剪切
* delete()删除文件或者文件夹
* 文件夹中不能包含文件夹或者文件
* 文件夹中不能包含文件夹或者文件
*/
@Test
public void fun3() {
/* File file = new File("make//make/m/xx.txt");
File file2 = new File("ddd.txt");
boolean b = file2.renameTo(file);//完成文件的重命名或者指定盘符剪切
System.out.println(b);*/
/*
File file3=new File("yyy.txt");
file3.delete();*/
File file4 = new File("make//make//m/xx.txt");
boolean delete = file4.delete();
System.out.println(delete);
}
/**
* 判断功能
*/
@Test
public void fun4() {
File file = new File("zzz.txt");
/* file.setWritable(false);//设置不可写
System.out.println(file.canWrite());*/
/* file.setExecutable(false);*/
/* try {
file.createNewFile();创建文件
} catch (IOException e) {
e.printStackTrace();
}*/
}
/**
* 获取功能
* public String getAbsolutePath():获取绝对路径
* public String getPath():获取路径
* public String getName():获取名称
* public long length():获取长度。字节数
* public long lastModified():获取最后一次的修改时间,毫秒值
* public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
* public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
*/
@Test
public void fun5() {
/*
File file=new File("zzz.txt");
System.out.println(file.getAbsoluteFile());///获取绝对路径
System.out.println(file.getParent());//只能用于路径,获取父路径
System.out.println(file.getPath());//获取构造函数传过来的路径
System.out.println(file.getName());//获取文件名
System.out.println(file.length());
System.out.println(file.lastModified());//获取最后一次修改的时间毫秒值
Date d=new Date(file.lastModified());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println(sdf.format(d));*/
/* File file=new File("C:\\Users\\ABC\\Desktop\\javaWork\\Struts2\\Struts2MavenDemo3");
String [] fileList=file.list();
for (String s:fileList){
System.out.println(s);
}
System.out.println(file.getAbsoluteFile());*/
}
public static void isSuffixJpg(File file, List<String> mlist) {
File[] fileList = file.listFiles();//获取file
if (fileList != null) {
for (File f : fileList) {
if (f.isDirectory()) {
isSuffixJpg(f, mlist);
} else {
String fileName = f.getName();
if (fileName.endsWith(".jpg"))
mlist.add(f.getName());
}
}
}
}
@Test
public void fun6() {
File file = new File("F:\\我的文件\\我的图片\\TU");
List<String> list = new ArrayList<>();
isSuffixJpg(file, list);
System.out.println(list.size());
for (String s : list) {
System.out.println(s);
}
}
//遍历指定文件夹下的文件
@Test
public void fun7() {
File file = new File("F://");
String[] sList = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
System.out.println(dir.getName());
System.out.println();
return true;
}
});
for (String s:sList) {
System.out.println(s);
}
}
@Test
public void fun8(){
List<String> sList=new ArrayList<>();
File file=new File("F:\\我的文件\\我的图片\\TU");
isSuffix(file,sList);
for (String s:sList
) {
System.out.println(s);
}
}
public static void isSuffix(File file,List<String> mlist){
File[] files = file.listFiles();
for (File f:files){
if(f.isDirectory()){
isSuffix(f,mlist);
}
else {
String name = f.getName();
if(name.endsWith(".jpg")){
mlist.add(name);
}
}
}
}
@Test
public void fun9(){
File file= new File("D://");
String [] sList=file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
/*System.out.println(dir);//封装的目录D盘
System.out.println(name);//目录下文件的名字*/
File file2=new File(dir,name);
return file2.isFile()&&file2.getName().endsWith(".jpg");
}
});
for (String s:sList){
System.out.println(s);
}
}
@Test
public void fun10(){
File file=new File("D://");
File [] files=file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return true;
}
});
for (File f:files){
System.out.println(f.getName());
}
}
}