一、Math类
java.lang.Math提供了一系列静态方法用于科学计算,其方法的参数和返回值类型一般为double类型。
1)举例
2)File类常见的构造方法:
4)常用方法举例:
三、练习
编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹)
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