黑马程序员——Java基础——其他流
第一讲 System与Runtime类
概述:
1、System是描述系统一些信息的类,类中的属性和方法是静态的。不能被实例化,没有提供构造函数
2、
out:标准输出流,默认屏幕
in: 标准输入流,默认是键盘
方法:
1、获取系统的属性信息
Properties getProperties();
说明:
1)该方法返回的双列集合,键与值;因为Properties是HashTablee的子类,所以能用Map 的方法获取集合元素;
2)该集合存储的都是字符串。没有泛型的定义
2、获取指定属性信息
String getProperty(key)
3、在系统内定义特有信息
String setProperty(key,value)
4、如何在jvm启动时,加载一下属性信息
java -D《name》=《value》 程序 就可以设置特有的系统属性信息
Runtime类
概述:
1、每一个java应用程序都有一个Runtime实例,使用应用程序能与其中运行的环境相连接,
应用程序不能创建自己的Runtime类的实例,是由系统底层自己创建的;
2、该类中并没有提供构造函数。说明不能new对象,而又不全是static。所以必然有一个static
的方法获得本类对象。
3、这也是单例设计模式的一种
方法:
1)static Runtime getRuntime()
2)Process exec(String Command)
3)void destroy();//注意只能结束java 开启的程序
举个栗子:
package System; import java.util.*; public class SystemDemo { public static void main(String[] args)throws Exception{ // Properties p=System.getProperties();//获得系统的系统信息 // System.out.println(p); // String value=System.getProperty("os.name");//获得键值为os。name的value,即系统明 // System.out.println(value); // // System.setProperty("我云","水音"); // System.out.println(p); //Runtime类 // String s=System.getProperty("我云"); // System.out.println(s); Runtime r=Runtime.getRuntime();//用static法获得本类对象 Process p=r.exec("Uedit32.exe SystemDemo.java");//执行记事本程序 Thread.sleep(40000);//等个40000毫秒 p.destroy();//程序p结束 } }
第二讲 时间类
Date类
1、概述:Date类表示特点瞬间 java中的特定格式如:Mon Jun 10 20:35:21 CST2014
2、自定义格式
默认的格式不实用,我们需要DateFormat中的format方法实现
Calendar类
1 、概述:Calendar是抽象类,比Date好用一些
2、基本获得方法:
1)年:Calendar.YEAR
2)月:Calendar.MONTH
3)日期:Calendar.DAY_OF_MONTH
4)星期:Calendar.DAY_OF_WEEK
5)小时:Calendar.HOUR_OF_DAY
6)分钟:Calendar.MINUTE
7) 秒:Calendar.SECOND
设置时间
1)void set(year,month,day)
2)int add(Calendat.DAY_OF_MONTH,-1);将他向上推一天
3)void set(Calendat.DAY_OF_MONTH,3);设置这天为3;
4)int get(int field)//得到某个数据
举些栗子:
package System; import java.util.*; import java.text.*; public class TimeDemo { public static void main(String[] args){ Date d=new Date();//得到时间对象,即得到现在时间 System.out.println(d);//看一看它的格式 SimpleDateFormat sdf=new SimpleDateFormat("yyyy年" + "MM月dd日E HH:mm:ss");//变格式 String time=sdf.format(d);//sdf的格式被用于d,再赋予String类的time System.out.println(time); // 看一看另一种方法 Calendar c=Calendar.getInstance();//也是获得现在时间,注意是静态方法getINstance c.set(2015,1,1);//设置时间2015年2月1日 System.out.println(pattern(c));//显示当今时间 c.add(Calendar.YEAR,3);//增加三年 System.out.println(pattern(c));//自定义的pattern方法 } //获取指定日期和时间 private static String pattern(Calendar c) {//获取时间 String s=nian(c)+yue(c)+ri(c)+" "+time(c); return s; } private static String time(Calendar c) { String time=c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+ c.get(Calendar.SECOND); return time; } private static String ri(Calendar c) { String s=c.get(Calendar.DAY_OF_MONTH)+"日"; return s; } private static String yue(Calendar c) {//查表法,可用于星期,可用于小写变大写 String[] yue={"一月","二月","三月","四月","五月","六月","七月","八月", "九月","十月","十一月","十二月"}; return yue[c.get(Calendar.MONTH)]; } private static String nian(Calendar c) {//获取年 String s = c.get(Calendar.YEAR)+"年"; return s; } }
做3个小练习
1 /*练习: 2 * 1、获取任意年二月多少年 3 * c.set(yue,2,1)//三月1日 4 * c.add(Calenar.DAY_OF_MONth,-1); 5 * c.get(Calendar.DAy_OF_MONth); 6 * 2、获取前一天现在这个时刻 7 * c.add(Calenar.DAY_OF_MONth,-1); 8 * 9 * 3、计算有序上课天数 10 * 思路:1)设置两个时间类如: c1.set(2013,5,5);c2.set(2144,4,4); 11 2)用c1.get(Calendar.DAY_OF_MONTH)!=c2.get(Calendar.DAY_OF_MONTH)中循环 12 并c1.add(Calendar.DAY_OF_MONTH,1)遍历非周末的天数,计入int型的count 13 3)返回count 14 * 15 */ 16 public class TestDemo { 17 public static void main(String[] args){ 18 eryue(2015);
lastime();
howDay(2013,5,5,2014,5,4);//从2013年5月5日到2014年5月4日 19 } 20 21 public static int eryue(int year){//获得二月天 22 Calendar c=Calendar.getInstance(); 23 c.set(year,2,1); 24 c.add(Calendar.DAY_OF_MONTH,-1); 25 return c.get(Calendar.DAY_OF_MONTH); 26 } 27 //获得前一天 28 public static String lasttime(){ 29 Calendar c=Calendar.getInstance(); 30 c.add(Calendar.DAY_OF_MONTH,-1); 31 return pattern(c); 32 } 33 34 //计算有效天数 35 public static int howDay(int y,int m,int d,int y2,int m2,int d2){ 36 Calendar c1=Calendar.getInstance(); 37 Calendar c2=Calendar.getInstance(); 38 c1.set(y,m,d); 39 c2.set(y2,m2,d2); 40 int count=0; 41 42 for(;c1.get(Calendar.DAY_OF_MONTH)!=c2.get(Calendar.DAY_OF_MONTH) 43 ;c1.add(Calendar.DAY_OF_MONTH,1)){ 44 if(c1.get(Calendar.DAY_OF_WEEK)!=1&&c1.get(Calendar.DAY_OF_WEEK)!=7) 45 count++; 46 } 47 48 return count; 49 } 50 private static String pattern(Calendar c) {//获取时间 51 String s=nian(c)+yue(c)+ri(c)+" "+time(c); 52 return s; 53 } 54 private static String time(Calendar c) { 55 String time=c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+ 56 c.get(Calendar.SECOND); 57 return time; 58 } 59 private static String ri(Calendar c) { 60 String s=c.get(Calendar.DAY_OF_MONTH)+"日"; 61 return s; 62 } 63 private static String yue(Calendar c) {//获得月 64 String[] yue={"一月","二月","三月","四月","五月","六月","七月","八月", 65 "九月","十月","十一月","十二月"}; 66 return yue[c.get(Calendar.MONTH)]; 67 } 68 private static String nian(Calendar c) {//获取年 69 String s = c.get(Calendar.YEAR)+"年"; 70 return s; 71 } 72 }
第三讲 Math类
一、概述
Math类是最基本执行的属性运行法
二、方法
1、double ceil(double d);返回大于指定数据的最小整形,如-1.6就返回-1,1.6返回2.0
2、double floor(double d);//返回小于指定数据的最大正数
3、double pow(double a,double b);//a的b次方
4、long round(double b);四舍五入
5、double random();大于0小于1.0的随机数;
1 package System;
//做练习 2 /*给定一个小数,保留这个小数点的后n位 3 * 1、先乘以10的n次方,再四舍五入; 4 * 2、将此除以10的n次方; 5 */ 6 public class xiaos { 7 public static void main(String[] args){ 8 // double d=baoNiu(12.1564,2); 9 // System.out.println(d); 10 // } 11 // 12 // private static double baoNiu(double d, int i) { 13 // double d1=d*Math.pow(d, 2); 14 // long l=Math.round(d1); 15 // return l/Math.pow(d, 2); 16 System.out.println(Math.ceil(1.6)); 17 System.out.println(Math.round(2.4)+"--"+Math.round(2.6)); 18 System.out.println(Math.floor(2.4)+"-=-"+Math.pow(2.6,4)); 19 for(int i=0;i<10;i++) 20 System.out.println(Math.random()*10); 21 // 四舍五入练习 22 System.out.println(retention(13.654,2)); 23 } 24 25 private static double retention(double d,int i) { 26 double d1=d*Math.pow(10, i);//小数点前移i位 27 long l=Math.round(d1);//小数点后四舍五入 28 return l/Math.pow(10, i);// 29 } 30 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。