NO.1 File类简单使用
/**
* File(String pathname):根据一个路径得到File对象
* File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
* File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
*/
//file类--路径
//这个文件路径用的绝对路径
File file = new File("/Users/jiangjun/Desktop/读书笔记代码-iOS");
//检测这个文件是否存在
boolean b = file.exists();
System.out.println(b);
//接下来我们试试相对路径
//我们创建了一个文件--tmack81
File file1 = new File("com/company/tmack81");
boolean b1 = file1.exists();
System.out.println(b1);
//2.根据父级、子级路径找文件
String parent = "/Users/jiangjun/Desktop";
String son = "读书笔记代码-iOS";
File file2 = new File(parent,son);
boolean b2 = file2.exists();
System.out.println(b2);
//3.把父级路径封装为一个File对象
File parentFile = new File("/Users/jiangjun/Desktop");
String son1 = "读书笔记代码-iOS";
File file3 = new File(parentFile,son1);
boolean b3 = file3.exists();
System.out.println(b3);
}
NO.2 File类的创建功能
/**
* * A:创建功能
* public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
* public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
* public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
* B:案例演示
* File类的创建功能
* 注意事项:
* 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
* @throws IOException
* */
//1.创建文件--不用后缀也可以创建的
File file = new File("tmac.txt");
try {
boolean b = file.createNewFile();//这里直接写会有异常,因为我们写的路径是无法创建的
System.out.println(b);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("1---------------");
//2.创建文件夹
File dir = new File("jj");
boolean b1 = dir.mkdir();
System.out.println(b1);
System.out.println("2-----------------");
//3.创建文件夹--如果父文件夹不存在,会帮你创建出来
File dirs = new File("King/Tmac");
boolean b2 = dirs.mkdirs();
System.out.println(b2);
NO.3 File类的重命名和删除功能
/**
* * A:重命名和删除功能
* public boolean renameTo(File dest):把文件重命名为指定的文件路径
* public boolean delete():删除文件或者文件夹
* B:重命名注意事项
* 如果路径名相同,就是改名。
* 如果路径名不同,就是改名并剪切。
* C:删除注意事项:
* Java中的删除不走回收站。
* 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
*/
//1.重命名文件为指定文件路径
//路径相同的情况下,就相当于重命名
File file = new File("tmac.txt");
System.out.println(file.exists());
//现在我们的tmac.txt是存在的,我们给这个换个名
File file1 = new File("ooo.txt");
//改名
System.out.println(file.renameTo(file1));
//如果file1和file的路径是不同的,那么就相当于剪切了
System.out.println("1------------------");
//2.删除文件或者文件夹
//直接将上面的ooo.txt删除了
System.out.println(file1.delete());
NO.4 File类的判断功能
/**
A:判断功能
* public boolean isDirectory():判断是否是目录
* public boolean isFile():判断是否是文件
* public boolean exists():判断是否存在
* public boolean canRead():判断是否可读
* public boolean canWrite():判断是否可写
* public boolean isHidden():判断是否隐藏
* B:案例演示
* File类的判断功能
*/
public static void main(String[] args) {
//demo1();
File file = new File("zzz");
file.setReadable(false);
System.out.println(file.canRead()); //windows系统认为所有的文件都是可读的
file.setWritable(true);
System.out.println(file.canWrite()); //windows系统可以设置为不可写
File file2 = new File("aaa.txt");
System.out.println(file2.isHidden()); //判断是否是隐藏文件
System.out.println(file.isHidden());
}
public static void demo1() {
File dir1 = new File("ccc");
System.out.println(dir1.isDirectory()); //判断是否是文件夹
File dir2 = new File("zzz");
System.out.println(dir2.isDirectory());
System.out.println(dir1.isFile()); //判断是否是文件
System.out.println(dir2.isFile());
}
}
NO.5 File的获取功能
/**
* * A:获取功能
* public String getAbsolutePath():获取绝对路径
* public String getPath():获取路径
* public String getName():获取名称
* public long length():获取长度。字节数
* public long lastModified():获取最后一次的修改时间,毫秒值
* public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
* public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
*/
public static void main(String[] args) {
//demo1();
File dir = new File("F:/双元课堂/day19/video");
String[] arr = dir.list(); //仅为了获取文件名
for (String string : arr) {
System.out.println(string);
}
File[] subFiles = dir.listFiles();
for (File file : subFiles) { //获取文件对象
System.out.println(file);
}
}
public static void demo1() {
File file1 = new File("ccc.txt");
File file2 = new File("D:\\双元课堂\\day19\\ccc.txt");
//System.out.println(file1.getAbsolutePath()); //获取绝对路径
//System.out.println(file2.getAbsolutePath());
//System.out.println(file1.getPath()); //获取构造方法中传入路径
//System.out.println(file2.getPath());
// System.out.println(file1.getName()); //获取文件或者文件的名字
// System.out.println(file2.getName());
//
// System.out.println(file1.length());
Date d = new Date(file1.lastModified()); //文件的最后修改时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println(sdf.format(d));
}
}
NO.6 File类练习(一)
//需求:判断桌面是否有后缀名为.png的文件,如果有,输出该文件名
//1.把我们的桌面路径封装为一个File类
File dir = new File("/Users/jiangjun/Desktop");
//2.获取桌面上所有的文件或者文件夹
//第一种方法
// String[] arr = dir.list();
// //遍历这个数组
// for (String str : arr){
// //判断是否以.png结尾
// if (str.endsWith(".png")){
// System.out.println(str);
// }
//
// }
//第二种方法
File[] subFiles = dir.listFiles();//获取桌面所有文件和文件夹的file对象
//遍历
for (File subFile : subFiles){
//isFile():方法判断这个是不是文件
if (subFile.isFile() && subFile.getName().endsWith(".png")){
System.out.println(subFile);
}
}
NO.7 File类文件名过滤器的概述和使用
/**
* @param args
* * A:案例演示
* 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
*/
public static void main(String[] args) {
File dir = new File("E:\\");
// String[] arr = dir.list(); //获取e盘下所有的文件或文件夹
// for (String string : arr) {
// if(string.endsWith(".jpg")) {
// System.out.println(string);
// }
// }
/*File[] subFiles = dir.listFiles(); //获取e盘下所有的文件或文件夹对象
for (File subFile : subFiles) {
if(subFile.isFile() && subFile.getName().endsWith(".jpg")) {
System.out.println(subFile);
}
}*/
String[] arr = dir.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//System.out.println(dir);
//System.out.println(name);
File file = new File(dir, name);
return file.isFile() && file.getName().endsWith(".jpg");
}
});
for (String string : arr) {
System.out.println(string);
}
}
}
网友评论