Java常用类之Math类、File类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/anticlql/article/details/75209242

Math类

Math类提供了一系列静态方法用于科学计算,其方法的参数和返回值类型一般为double型

abs 绝对值
acos ,asin, atan, cos, sin, tan
sqrt 平方根
pow(double a,double b) a的b次幂
log 自然对数
exp e为底数
max(…), min(…)
random() 返回0.0到1.0的随机数
long round(double a) double型的数据a转换为long型(四舍五入)
具体可查询API文档

File类

File类代表系统文件名(路径和文件名 )

File类常见的构造方法
1、public File(String pathname)
以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储
2、public File(String parent,String child)
以parent为父路径,吃了点为子路径创建File对象
File的静态属性String separator存储了当前系统的路径分隔符

public boolean canRead()
public boolean canWrite()
public boolean exists()
public boolean isDirectory()
public boolean isFile()
public boolean isHidden()
public long lastModified()
public long length()
public String getName()
public String getPath()
通过File对象创建空文件或者目录(在该对象所指的文件或目录不存在的情况下)
public boolean createNewFile() throws IOException
public boolean delete()
public boolean mkdir()
public boolean mkdirs()//创建在路径中的一系列目录

import java.io.*;
public class TestFile1 {
  public static void main(String[] args) {
    String separator = File.separator;
    String filename = "myfile.txt";
    String directory = "mydir1" + separator + "mydir2";
    //String directory = "mydir1/mydir2";在其他运行系统中无法识别
    //String directory = "mydir1\\mydir2";
    File f = new File(directory, filename);
    if (f.exists()) {
      System.out.println("文件名:" + f.getAbsolutePath());
      System.out.println("文件大小:" + f.length());
    } else {
      f.getParentFile().mkdirs();
      try {
        f.createNewFile();//当class文件位于包中的时候,先找到包,然后在找到包上面的路径
      } catch (IOException e) {
       e.printStackTrace();
      }
    }
  }
}

运行结果:

文件名:C:\Users\TestString\mydir1\mydir2\myfile.txt
文件大小:0

下面一个例子:递归列出目录结构

import java.io.*;

public class FileList{
    public static void main(String[] args){
        File f = new File("d:/java/File/A");
        tree(f);
    }

    private static void tree(File f){
        File[] childs =f.listFiles();
        for(int i = 0;i<childs.length;i++){
            System.out.println(childs[i].getName());
            if(childs[i].isDirectory()){
                tree(childs[i]); //递归调用
            }
        }
    }
}

在我电脑上运行时如下结果(可以自己创建几个新文件夹测试)

B
C
123.java

猜你喜欢

转载自blog.csdn.net/anticlql/article/details/75209242
今日推荐