我的java学习日记(13)

时间:2021-05-23 15:39:16

Java学习第十三节之类的几个基本类型和常用方法

一、           枚举类和泛型类

1、枚举类

枚举类型是这样一种类型,它在一个简短的列表中给出该类型的所有值,一个枚举类型的值是一种命名常量,因此根据约定,全部使用大写。

语法:enum Type­_Name{FIRST_VALUE,SECOND_VALUE,……LAST_VALUE};

实例:enum Flavor{VANILLA,CHOCOLATE,STRAWBERRY};

枚举类型的定义一般放在所有方法的外部,与命名常量放在同一个地方。

示例如下:

我的java学习日记(13)

2、泛型类

带有类型参数的类,即称为泛型类或者参数化类。在类定义的头部,类型参数包含在类名后面的尖括号中。任何非关键字标识符都可以用作类型参数,但是按照约定,类型参数以一个大写字母开头。

示例如下:

  我的java学习日记(13)

       注意:1、类型参数可以是一个,也可以是多个。如:public class test<T,D>

             2、类型参数可以继承。

                 示例如下: 

我的java学习日记(13)

三、常用的方法

   file不是文件,是描述路径的,放在io包下

   路径可分为文件路径(File)和夹子路径(Directory;

   路径也可根据其使用的特点分为相对路径和绝对路径,绝对路径不可变,相对路径是与工程一块的,具有很好的灵活性。

方法示例如下:

我的java学习日记(13)

 我的java学习日记(13)

我的java学习日记(13)

1 File f=new File(“D:\\a.txt”);

boolean b=f.renameTo(new File("D:\\.12345.txt"));  //改文件名

2File f1=new File("D:\\a");

       booleanf2=f.mkdir(new File(“需要创建的文件名”));  //创建文件,只能创建一个

3File f1=new File("D:\\a");

       booleanf2=f.mkdirs(new File(“需要创建的文件名”)); //可创建多个

4listRoots() 列出根目录,返回File对象数组

5list()listFiles()效果一样,但是前者仅仅是列出根目录,后者则是把各文件封装成了对象。

我的java学习日记(13)

四、用递归实现文件夹的删除和文件的查找

  static long size = 0;

  public static voiddeleteFile(File f) {//删除的方法

          if (f.exists()) {

                 if (f.isFile()) {

                        f.delete();

                 } else if(f.isDirectory()) {

                        File[] files =f.listFiles();

                        for (File file :files) {

                               deleteFile(file);

                        }

                        f.delete();

                 }

          }

   }

   public static voidgetFile(File f) { //查找的方法

          if (f.isFile()) {

                 System.out.println(f.getPath());

                 size += f.length();

          } else {

                 File[] fs = f.listFiles();

                 if (fs != null) {

                        for (File file :fs) {

                               getFile(file);

                        }

                 }

          }

   }