JavaSE_19th_常用类——Math类、File类

一、Math类
java.lang.Math提供了一系列静态方法用于科学计算,其方法的参数和返回值类型一般为double类型。
1)举例
package com.hpe.math;

public class TestMath {
	public static void main(String[] args) {
		/* 取[0, 1)之间的随机数 */
		double a = Math.random();
		double b = Math.random();
		/* 求a和b的平方和的平方根 (以a和b为直角边的三角形的斜边)*/
		double c = Math.sqrt(a*a + b*b);//0.8616562334226456
		System.out.println(c);
		/* 对0.8616562334226456四舍五入 */
		System.out.println(Math.round(c));//1
		/* 求a的b次方 */
		System.out.println(Math.pow(a, b));//0.9350152342418866
		/* 求loge(e^15) */
		System.out.println(Math.log(Math.pow(Math.E, 15)));
		/* 求角度、求弧度 */
		double d = 60.0, r = Math.PI/4;
		System.out.println(Math.toRadians(d));//60度的弧度值是1.0471975511965976
		System.out.println(Math.toDegrees(r));//π/4的角度值是45.0
	}
}


二、File类

1)java.io.File类代表系统文件名(路径和文件名)
2)File类常见的构造方法:
public File(String pathname)	//以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.id中存储。
public File(File parent, String child)		//以parent为父路径,child为子路径创建File对象。
3)File的静态属性String separator存储了当前系统的路径分隔符。
4)常用方法举例:
package com.hpe.file;

import java.io.File;
import java.io.IOException;

public class TestFile {
	public static void main(String[] args) {
		String separator = File.separator;
		String filename = "myfile.txt";
		String directory = "mkdir1" + separator + "mkdir2"; //File.separator的内容自动适应运行环境
		//String directory = "mkdir1/mkdir2"; //windows兼容正斜杠"/",推荐使用
		//String directory = "mkdir1\\mkdir2"; //使用转义字符,但在linux环境下只认正斜杠"/"
		
		/* 创建了一个File对象,还没有在磁盘上创建文件 */
		File f = new File(directory, filename);
		/* 如果文件存在 */
		if(f.exists()) {
			System.out.println("文件名:" + f.getAbsolutePath());
			System.out.println("文件大小:" + f.length());
		} else {	//文件不存在
			/* 在TestFile.class文件最上层包(com)的上一层目录创建mkdir1\mkdir2 */
			f.getParentFile().mkdirs();
			try {
				f.createNewFile();
				System.out.println("文件创建成功!");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
第一次运行结果:
文件创建成功!
第二次运行结果:
文件名:T:\Java\code\mkdir1\mkdir2\myfile.txt
文件大小:0


三、练习
编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹)
package com.hpe.file;

import java.io.File;

public class TestFile2 {
	public static void main(String[] args) {
		File f = new File("d:/A");
		System.out.println(f.getName());
		tree(f, 1);
	}
	
	private static void tree(File f, int level) {
		
		String preStr = "";
		for(int i=0; i<level; i++) {
			preStr += "    ";
		}
		
		File[] childs = f.listFiles();
		
		for(int i=0; i<childs.length; i++) {
			
			System.out.println(preStr + childs[i].getName());
			
			if(childs[i].isDirectory()) {

				tree(childs[i], level + 1);
			}
		}
	}
}
运行结果:
A
    B
        E
            H
            i.txt
        F
        g.txt
    C
        J
        k.txt
        l.txt
    d.txt



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值