1:File类(掌握)
(1)因为我们硬盘上的数据最常见的方式就是以文件的方式存在。
为了方便对这些文件进行操作,java就提供了一个类File供我们使用。(了解)
(2)File类的构造方法(理解)
A:File file = new File("d:\\a.txt");
B:File file = new File("d:\\","a.txt");
C:File file = new File("d:\\");
File file2 = new File(file,"a.txt");
以上三种等价。
(3)File类的功能方法:(掌握 补齐方法名)
A:创建方法
创建文件:boolean createNewFile()
创建文件夹:boolean mkdir()
B:删除方法
删除文件或者文件夹:boolean delete()
C:判断方法(掌握)
文件对象是否存在:boolean exists()
文件对象是否是文件:boolean isFile()
文件对象是否是文件夹:boolean isDirectory()
文件对象是否可读:boolean canRead()
文件对象是否可写:boolean canWrite()
文件对象是否隐藏:boolean isHidden()
D:获取方法(掌握)
获取文件对象的绝对路径:String getAbsolutePath()
获取文件对象的相对路径:String getPath()
获取文件对象的名称:String getName()
获取文件对象的大小:long length()
获取文件对象的最后一次修改时间:long lastModified()
E:重要获取方法(掌握)
根据目录获取该目录下所有文件或者文件夹的名称数组:String[] list()
根据目录获取该目录下所有文件或者文件夹的对象数组:File[] listFiles()
加入文件名称过滤器的使用:FilenameFilter
F:重命名方法
重命名文件:boolean renameTo(File dest)
(4)案例:(掌握)
需求:把d盘目录下指定后缀的文件名称输出。
比如:我要获取d盘目录下所有的java文件名称。
方式1:先获取所有的文件对象数组,然后遍历的时候进行判断。
File file = new File("d:\\")
File[] fileArray = file.listFiles();
for(File f : fileArray)
{
if(f.isFile())
{
if(f.getName().endsWith(".java"))
{
System.out.println(f.getName());
}
}
}
方式2:直接获取满足条件的文件名称数组,然后遍历即可
public static void main(String[] args) {
File file=new File("d:\\KuGou\\Temp");
String[] s=file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir,name).isFile() && name.endsWith(".mp3");
}
});
for (String string : s) {
if(string.endsWith(".mp3")){
System.out.println(string);
}
}
}
2:递归(理解)
(1)递归:方法定义内部调用方法本身的现象叫递归。(理解)
举例:
老和尚给小和尚讲故事
我们学编程
(2)注意事项:(掌握)
A:明确出口,否则就是死递归。
B:次数不能过多,过多就会有内存溢出。
(3)案例:(掌握)
A:递归求阶乘
规律:n! = n*(n-1)!
出口:1! = 1;
public static int jc(int n)
{
if(n==1)
{
return 1;
}
else
{
return n*jc(n-1);
}
}
B:递归求斐波纳契数列第二十项的值
public static int fib(int n){
if(n==1 || n==2){
return 1;
}else{
return fib(n-1)+fib(n-2);
}
}
File类,递归
最新推荐文章于 2024-07-28 20:28:43 发布