常用类——File——Random——Math

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用类——File——Random——Math相关的知识,希望对你有一定的参考价值。

Date(long date):分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
java.io.File:文件和目录路径名的抽象表示形式。
  构造方法:
    File(String pathname)
  常用的方法:
    getName()***:返回由此抽象路径名表示的文件或目录的名称
    isDirectory()**:测试此抽象路径名表示的文件是否是一个目录,如果是目录返回true,否则返回false
    isFile(): 测试此抽象路径名表示的文件是否是一个标准文件
    length()**:返回由此抽象路径名表示的文件的长度。目录没有大小
    isHidden(): 测试此抽象路径名指定的文件是否是一个隐藏文件。
    canRead() :测试应用程序是否可以读取此抽象路径名表示的文件。
    canWrite(): 测试应用程序是否可以修改此抽象路径名表示的文件。
    canExecute():测试应用程序是否可以执行此抽象路径名表示的文件。
    listFiles() *** :返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
    exists()*** :测试此抽象路径名表示的文件或目录是否存在,如果存在返回true,否则返回false
    lastModified(): 返回此抽象路径名表示的文件最后一次被修改的时间
    delete()** :删除此抽象路径名表示的文件或目录。

public class TestFile1 {
    public static void main(String[] args) {
        // \代表转义符,如果需要利用\表示路径需要使用\\或使用/
//        File file = new File("D:\\javacode");
        File file = new File("D:/javacode");
        System.out.println("文件名:"+file.getName());
        System.out.println("是否是目录:"+file.isDirectory());
        System.out.println("是否是文件:"+file.isFile());
        System.out.println("是否是隐藏文件:"+file.isHidden());
//        System.out.println("是否可读:"+file.canRead());
//        System.out.println("是否可写:"+file.canWrite());
//        System.out.println("是否可执行:"+file.canExecute());
//        System.out.println("文件的大小:"+file.length()); //目录没有大小
        System.out.println("修改时间:"+new Date(file.lastModified()).toLocaleString());
        File[] fs = file.listFiles();
        for (File file2 : fs) {
            System.out.println("\t"+file2.getName());
        }
        //删除文件或目录
        File file2 = new File("E:/北京尚学堂/test/aa.txt");
        if(file2.exists()){
            file2.delete();
        }
        //如果要删除目录,该目录下应该无子目录或文件
        File file3 = new File("E:/北京尚学堂/test/bb");
        if(file3.exists()){
            file3.delete();
        }
        
        
    }
}

exists() :测试此抽象路径名表示的文件或目录是否存在,如果存在返回true,否则返回false

使用递归查看某个目录下的子文件夹及其文件

public class TestFile2 {
    /**
     * 查看某个目录下的子文件夹及其文件 
     * @param file
     */
    public static void showDir(File file){
        File[] fs = file.listFiles();//获取当前目录下的所有子目录或文件
        for (File file2 : fs) {
            String fileName = file2.getName();
            boolean isDir = file2.isDirectory();//判断是否为一个目录
            if(isDir){
                String modifyTime = new Date(file2.lastModified()).toLocaleString();
                System.out.println(modifyTime+"\t"+"<DIR>"+"\t"+fileName);
                showDir(file2);//递归调用
            }else{
                System.out.println("\t"+file2.length()+"\t"+fileName);
            }
        }
    }
    
    public static void main(String[] args) {
        File file = new File("D:/javacode");
        if(file.exists()){
            showDir(file);
        }else{
            System.out.println("该文件或目录不存在!");
        }
        
    }
}

File类常用方法:
  createNewFile():当文件不存在时创建一个新的空文件。 有一个检查异常:IOException需要处理
  mkdir():创建目录(创建一级目录)
  mkdirs()***:创建目录(创建多级目录)

public class TestFile3 {
    public static void main(String[] args) {
        File file = new File("D:/aa.txt");
        try {
            if(!file.exists()){
                file.createNewFile();//创建文件
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        File file2 = new File("D:/bb/cc");
        if(!file2.exists()){
//            file2.mkdir();//创建目录
            file2.mkdirs();
        }
    }
}

java.lang.Math:Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数
  常见的属性:
    PI:圆周率
  常用的方法:
    abs():计算绝对值
    ceil(double a):返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
    floor(double a):返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数
    max(double a, double b):返回两个 double 值中较大的一个。
    round(double a):返回最接近参数的 long。四舍五入
    pow(double a, double b):返回第一个参数的第二个参数次幂的值。
    sqrt(double a) :返回正确舍入的 double 值的正平方根。
    random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
      产生10个(10,20)之间的随机数

public class TestMath {
    public static void main(String[] args) {
        System.out.println(Math.abs(-10));
        System.out.println(Math.ceil(19.5));
        System.out.println(Math.floor(19.5));
        System.out.println(Math.max(19,20));
        System.out.println(Math.round(12.6));
        System.out.println(Math.pow(2,3));
        System.out.println(Math.sqrt(2));
        System.out.println(Math.random());
        System.out.println("----------------");
        for (int i = 0; i <10; i++) {
            int r = (int)(Math.random()*11)+10;//0~10
            System.out.print(r+"\t");
        }
    }
}


java.util.Random:此类的实例用于生成伪随机数流
  构造方法:
    Random():创建一个新的随机数生成器
    Random(long seed):使用单个 long 种子创建一个新的随机数生成器。
  常用方法:
    nextInt(int n):返回一个[0,n)之间的随机数
    nextDouble():(0,1)之间的一个随机数,Math.random()本质调用此函数

public class TestRandom {
    public static void main(String[] args) {
        Random random = new Random();
        for (int i = 0; i < 10; i++) {
            int r = random.nextInt(10);
            System.out.print(r+"\t");
        }
        System.out.println();
        for (int i = 0; i < 10; i++) {
            double r2 = random.nextDouble();//返回0~1之间一个double类型的随机数
            System.out.print(r2+"\t");
        }
    }
}

 


枚举:是一种特殊的数据类型,只能从特定的值中选择
  默认使用 public static final使用

public enum Gender {
   男,女
}

JDK1.5之后新增的特性
只能够取特定值中的一个
使用enum关键字
所有的枚举类型隐性地继承自 java.lang.Enum。
(枚举实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,
他们默认都是public static final的。可以直接通过枚举类型名直接使用它们。)

public class Person {
    private String name;
    private Gender sex;//枚举类型
    public Person(){
        
    }
    public Person(String name,Gender sex){
        this.name=name;
        this.sex=sex;
    }
    
    public void show(){
         System.out.println("姓名:"+name);
         System.out.println("性别:"+sex);
    }
    
    public static void main(String[] args) {
        Person p = new Person("zhangsan",Gender.男);
        p.show();
    }
}

 

以上是关于常用类——File——Random——Math的主要内容,如果未能解决你的问题,请参考以下文章

java常用类--------Math和Random类

常用类Math和Random

Java常用类之Math类Random类和System类

JavaSE基础六----<常用类>Math类Random类|System类,Date类Calendar类SimpleDateFormat类,BigInteger类BigDecimal类

Date日期类,Canlendar日历类,Math类,Random随机数学类

Math类和Random类