Math类
java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数;其方法的参数和返回值类型一般为double型。
abs //绝对值
acos,asin,atan,cos,sin,tan //三角函数
sqrt //平方根
pow(double a, double b) //a的b次幂
log //自然对数
exp //e为底指数
max(double a, double b)
min(double a, double b)
random() //返回0.0到1.0的随机数
long round(double a) //double型的数据a转换为long型
toDegrees(double angrad)
toRadians(double angdeg)
例子:
public class Test{
public static void main(String [] args){
//定义两个double类型的随机数 a,b
double a = Math.random();
double b = Math.random();
System.out.println(Math.sqrt(a*a+b*b)); //求a平方和b平方的和求平方根
System.out.println(Math.pow(a.8)); //求a的8次幂
System.out.println(Math.round(b)); //对b四舍五入,四舍五入到一个long类型的数
System.out.println(Math.log(Math.pow(Math.E,15))); /*因为可以直接访问,所以可以看出来Math.E是一个静态常量,
求log 以E为底,E的15次方的对数*/
double d = 60.0, r = Math.PI/4; //d为角度,转换为弧度
//打印
System.out.println(Math.toRadians(d));
System.out.println(Math.toDegrees(r));
}
}
File类:
java.io.File类代表系统文件名(路径和文件名)。
File类的常见构造方法:
1:public File(String pathname)
以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user。dir中储存。
2:public File(String parent, String child)
以parent为父路径,child为子路径创建File对象
File常用方法:
通过File对象可以访问文件的属性。
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 TestFile {
public static void main(String[] args) {
String separator = File.separator;
String filename = "myfile.txt"; //定义一个文件名
String directory = "mydir1" +separator+ "mydir2"; //一个路径包含两个路径
//也可以这样写: String directory = "mydir1/mydir2";
File f = new File(directory,filename); //构造方法,创建一个File对象,父路径directory,子路径filename
if(f.exists()) { //如果文件存在
System.out.println("文件名:" + f.getAbsolutePath());
System.out.println("文件名:"+f.length());
}else{
f.getParentFile().mkdirs(); //求它的父路径,建立一系列路径
try{
f.createNewFile(); //创建新文件
}catch (IOException e) {
e.printStackTrace();
}
}
}
}
FIle练习:
编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹):
import java.io.*;
public class FileList{
public static void main(String[] args){
File f = new File("d:/A"); //目标文件
System.out.println(f.getName()); //先打印目标文件自己的名字
tree(f,1); //调用方法,第一次调用方法输出的是A的子类,level=1,缩进一次
}
private static void tree(File f,int level){ //定义一个int类型数据 level,呈现其层次
String preStr = "";
for(int i=0;i<level; i++){
preStr += " ";
}
File[] childs = f.listFiles(); //定义一个File类型的数组,元素是当前目录下的子文件
for(int i=0;i<childs.length;i++){
System.out.println(childs[i].getName()); //打印文件夹名称
//下面找子类的子类
if(childs[i].isDirectory()){ //如果子类是目录,继续调用
tree(childs[i],level + 1); //之后每次都多缩进一次
}
}
}
}