—————————— ASP.Net+Android+IOS开发、.Net培训、期待与您交流!——————————
System系统类
in:标准输入流 默认键盘
out:标准输出流 默认控制台
arrayCopy();复制数组
exit();结束程序
currentTimeMills();获取当前毫秒值
gc();运行java垃圾回收器
getProperties();获取全部系统属性信息
getProperty();获取指定键的值
setProperty();设置键值对
clearProperty();移除指定键系统信息
的方法取出该集合中的元素.
get(k);
keySet();
entrySet();
getProperty();
setProperty();
//可不可以在jvm启动时,动态的加载一些属性呢?
java -D key=value 类名
Runtime类
该类中并没有提供构造函数,说明不可以new对象,那么看到该类
方法除了静态的,还有非静态的,说明该类会提供方法获取本类对象
而且该方法是静态的,并返回值是本类类型
static Runtime getRuntime()
返回与当前 Java 应用程序相关的运行时对象。
Process exec(String command)
在单独的进程中执行指定的字符串命令。
由这个类特点,,可以看出该类使用了单利设计模式
Process进程类
abstract void destroy()
杀掉子进程。
下面是Runtime和Process类演示(打开记事本,10秒后关掉进程):
Date日期类
DateFormat抽象类,可实现该子类SimpleDateFormat
Date d=new Date();
//pattern(格式化模式): yyyy年MM月mm日 hh时:mm分:ss秒
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 hh时:mm分:ss秒");
sdf.format(d);
Calendar日历类
staic getInstance();获取本类类型
get();//根据字段获取值
set();//根据字符设置值
setTime();//传递Date设置时间
setTimeMills();//传递毫秒值设置时间
add();//加或减字符值
setFirstDayOfWeek(int value);设置一星期的第一天是哪天
getActualMaximum(int field) 给定此 Calendar 的时间值,返回指定日历字段可能拥有的最大值。
Math类
abs();绝对值
ceil();向上取整
floor();向下取整
round();四舍五入
pow();求某数的几次方
random();返回随机数
max();取最大值
min();取最小值
Random随机类
nextInt(int v); //随机返回整数
nextLong(); //返回0-1(不包括1)的随机数
按操作数据分两种:字节流 字符流
按流向分两种:输入流 输出流
字节流两大抽象基类
InputStream OutputStream
字符流两大抽象基类
Reader Writer
字符流都是采用默认编码
文件读取
System系统类
in:标准输入流 默认键盘
out:标准输出流 默认控制台
arrayCopy();复制数组
exit();结束程序
currentTimeMills();获取当前毫秒值
gc();运行java垃圾回收器
getProperties();获取全部系统属性信息
getProperty();获取指定键的值
setProperty();设置键值对
clearProperty();移除指定键系统信息
/*
System系统类 Properties系统信息类
*/
import java.util.*;
class Demo1
{
public static void main(String[] args)
{
method1();
}
public static void method1(){
Properties p=System.getProperties();
sop(p.getProperty("控制台输入键"));
/*
//第一种遍历方法
for (Object o : p.keySet())
{
//因为里面全是字符串 不调用子类方法,不强转也行
//String s =(String)o;
System.out.println(o+":::"+p.get(o));
}*/
/*第二种
Set<String> stringPropertyNames()
返回此属性列表中的键集,其中该键及其对应值是字符串,
如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。
Set<String> set=p.stringPropertyNames();
Iterator<String> it=set.iterator();
for (;it.hasNext() ; )
{
String k=it.next();
String v=(String)p.get(k);
System.out.println(k+"键------------值"+v);
}
*/
//第三种方法
//static Map<String,String> getenv()
// 返回一个不能修改的当前系统环境的字符串映射视图。
Map<String,String> m=System.getenv();
for (Map.Entry<String,String> me : m.entrySet())
{
sop(me.getKey()+"-----------"+me.getValue());
}
}
public static void method2(){
// static String setProperty(String key, String value)
// 设置指定键指示的系统属性。
System.setProperty("我是键","我是值");
// static String getProperty(String key)
// 获取指定键指示的系统属性。
sop(System.getProperty("我是键"));
// static String clearProperty(String key)
// 移除指定键指示的系统属性。
System.clearProperty("我是键");
// static void exit(int status)
// 终止当前正在运行的 Java 虚拟机。
System.exit(0);
}
public static void method3(){
// static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
// 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
int [] arr={5,6,8,9,18};
int [] copy=new int[2];
System.arraycopy(arr,0,copy,0,copy.length);
for (int i : copy )
{
sop(i);
}
}
public static void sop(Object o){
System.out.println(o);
}
}
的方法取出该集合中的元素.
get(k);
keySet();
entrySet();
getProperty();
setProperty();
//可不可以在jvm启动时,动态的加载一些属性呢?
java -D key=value 类名
Runtime类
该类中并没有提供构造函数,说明不可以new对象,那么看到该类
方法除了静态的,还有非静态的,说明该类会提供方法获取本类对象
而且该方法是静态的,并返回值是本类类型
static Runtime getRuntime()
返回与当前 Java 应用程序相关的运行时对象。
Process exec(String command)
在单独的进程中执行指定的字符串命令。
由这个类特点,,可以看出该类使用了单利设计模式
Process进程类
abstract void destroy()
杀掉子进程。
/*
Runtime and Process
记事本打开 Demo1.java 10秒后关闭
*/
import java.io.*;
class Demo2
{
public static void main(String[] args)
{
/*获取当前运行对象*/
Runtime rt=Runtime.getRuntime();
try
{
/*给java文件绑定 记事本程序打开*/
Process p=rt.exec("notepad Demo1.java");
Thread.sleep(1000*10); //延时10s
p.destroy(); //关掉进程
}
catch(IOException o)
{
throw new RuntimeException("IO异常"+o.getMessage());
}
catch (InterruptedException i)
{
throw new RuntimeException("关闭进程异常"+i.getMessage());
}
}
}
下面是Runtime和Process类演示(打开记事本,10秒后关掉进程):
Date日期类
DateFormat抽象类,可实现该子类SimpleDateFormat
Date d=new Date();
//pattern(格式化模式): yyyy年MM月mm日 hh时:mm分:ss秒
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 hh时:mm分:ss秒");
sdf.format(d);
/*
Date 日期类
SimpleDateFormat日期格式化类
*/
import java.util.*;
import java.text.SimpleDateFormat;
class Demo3
{
public static void main(String[] args)
{
//实例化一个日期类
Date d=new Date();
//实例化一个格式化日期列
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 hh时:mm分:ss秒");
//格式化后返回一个字符串
String s=sdf.format(d);
System.out.println(s);
}
}
Calendar日历类
staic getInstance();获取本类类型
get();//根据字段获取值
set();//根据字符设置值
setTime();//传递Date设置时间
setTimeMills();//传递毫秒值设置时间
add();//加或减字符值
setFirstDayOfWeek(int value);设置一星期的第一天是哪天
getActualMaximum(int field) 给定此 Calendar 的时间值,返回指定日历字段可能拥有的最大值。
/*
Calender 日历类
*/
import java.util.*;
class Demo4
{
public static void main(String[] args)
{
//获取一个日历类对象
Calendar c=Calendar.getInstance();
//打印全部信息
//System.out.println(c);
// method(c);
// method1(c);
method2(c);
}
public static void method(Calendar c){
// 设置一星期的第一天是哪一天
// c.setFirstDayOfWeek(0);
//打印星期的第一天
// sop(c.getFirstDayOfWeek());
//根据字段设置时间
// void set(int year, int month, int date, int hourOfDay, int minute, int second)
// 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
c.set(2014,(5-1),4,11,20,50);
/*查表输出现在时间*/
String []m={"一月","二月","三月","四月"
,"五月","六月","七月","八月"
,"九月","十月","十一月","十二月"};
String []w={"星期天","星期一","星期二","星期三","星期四"
,"星期五","星期六"};
int year=c.get(Calendar.YEAR); //年
int month=c.get(Calendar.MONTH); //月
int day=c.get(Calendar.DAY_OF_MONTH);//日
int hh= c.get(Calendar.HOUR_OF_DAY); //时
int minute= c.get(Calendar.MINUTE); //分
int second= c.get(Calendar.SECOND); //秒
sop(year+"年"+m[month]+day+"日"+w[c.get(Calendar.DAY_OF_WEEK)-1]);
sop(hh+"时:"+minute+"分:"+second+"秒");
}
/*获取昨天现在的时间*/
public static void method1(Calendar c){
c.add(Calendar.DAY_OF_MONTH,-1);
String []m={"一月","二月","三月","四月"
,"五月","六月","七月","八月"
,"九月","十月","十一月","十二月"};
String []w={"星期天","星期一","星期二","星期三","星期四"
,"星期五","星期六"};
int year=c.get(Calendar.YEAR); //年
int month=c.get(Calendar.MONTH); //月
int day=c.get(Calendar.DAY_OF_MONTH);//日
int hh= c.get(Calendar.HOUR_OF_DAY); //时
int minute= c.get(Calendar.MINUTE); //分
int second= c.get(Calendar.SECOND); //秒
sop(year+"年"+m[month]+day+"日"+w[c.get(Calendar.DAY_OF_WEEK)-1]);
sop(hh+"时:"+minute+"分:"+second+"秒");
}
/*获取任意年的二月有多少天*/
public static void method2(Calendar c){
int year=2012; //设置年份
c.set(year,2,1); //设置年月日 月份从0开始
c.add(Calendar.MONTH,-1); //-1就是2月
//abstract int getMaximum(int field)
// 返回此 Calendar 实例给定日历字段的最大值。
String []m={"一月","二月","三月","四月"
,"五月","六月","七月","八月"
,"九月","十月","十一月","十二月"};
sop(m[c.get(Calendar.MONTH)]); //输出月份
sop(c.getActualMaximum(Calendar.DAY_OF_MONTH)); //输出二月有多少天
}
public static void sop(Object o){
System.out.println(o);
}
}
Math类
abs();绝对值
ceil();向上取整
floor();向下取整
round();四舍五入
pow();求某数的几次方
random();返回随机数
max();取最大值
min();取最小值
/*
Math类
和Random类
常用方法演示
*/
import java.util.*;
import static java.lang.Math.*;
class Demo5
{
public static void main(String[] args)
{
sop(abs(-2)); //绝对值
sop(ceil(12.01));
sop(ceil(-12.01)); //负数就向下取整
sop(floor(12.01));
sop(floor(-12.01)); //负数就向上取整
sop(pow(2,3)); //2的3次方是8
sop(round(12.45)); //四舍五入
sop(max(-2,5)); //最大值
sop(min(-2,5)); //最小值
/*打印10个随机数 1-10*/
for(int i=0;i<10;i++){
int r=(int)(random()*10+1);
sop(r);
}
System.out.println("-----------------------");
Random ran=new Random();
for (int i=0;i<5 ;i++ )
{
sop(ran.nextInt(10)+1);
}
}
public static void sop(Object o){
System.out.println(o);
}
}
Random随机类
nextInt(int v); //随机返回整数
nextLong(); //返回0-1(不包括1)的随机数
/*
保留小数后面两位
*/
class Demo6
{
public static void main(String[] args)
{
double b=12.35456*100;
System.out.println((int)b/100.0);
}
}
按操作数据分两种:字节流 字符流
按流向分两种:输入流 输出流
字节流两大抽象基类
InputStream OutputStream
字符流两大抽象基类
Reader Writer
/*
字符输出流
Writer
|--OutputStreamWriter 字符输出流
|--FileWriter 文件输出流
专门用于操作文件的Writer子类对象
void close()
关闭此流,但要先刷新它。
abstract void flush()
刷新该流的缓冲。
void write(char[] cbuf)
写入字符数组。
abstract void write(char[] cbuf, int off, int len)
写入字符数组的某一部分。
void write(int c)
写入单个字符。
void write(String str)
写入字符串。
void write(String str, int off, int len)
写入字符串的某一部分。
*/
import java.io.*;
class Demo7
{
public static void main(String[] args)
{
// FileWriter(String fileName, boolean append)
//根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。
FileWriter fw=null;
try
{
//设置为true则支持续写, 否则反之.
fw=new FileWriter("file.txt",true);
fw.write("String");
//fr.flush();//加不加都行 close关闭前都会flush一次 把数据刷到目的地
fw.write("Saaaaaaaaaaa");
}
catch (FileNotFoundException e )
{
throw new RuntimeException("文件找不到");
}catch(IOException e)
{
throw new RuntimeException("IO异常");
}
finally
{
try
{
if(fw!=null)
fw.close();
}
catch (IOException e)
{
throw new RuntimeException("关闭流异常");
}
}
}
}
字符流都是采用默认编码
文件读取
/*
用两种方法实现文件数据的读取
Reader
|--InputStreamReader
|--FileReader
*/
import java.io.*;
class Demo8
{
public static void main(String[] args)
{
// method();
function();
}
/*第一种方法: 单个字符读取*/
public static void method(){
FileReader fr=null;
try
{
//FileReader(String fileName)
// 在给定从中读取数据的文件名的情况下创建一个新 FileReader。
fr=new FileReader("Demo1.java");
// int read()
// 读取单个字符。 返回-1表示已是文件末尾处
int ch=0;
for (;(ch=fr.read())!=-1 ; )
{
System.out.print((char)ch);
}
}
catch (IOException o)
{
System.out.println("io异常");
}
finally
{
try
{
if(fr!=null)
fr.close();
}
catch (IOException o)
{
System.out.println("io异常");
}
}
}
/*第二种方法: 字符数组读取方式*/
public static void function(){
FileReader fr=null;
try
{
fr=new FileReader("Demo2.java");
//int read(char[] cbuf)
// 将字符读入数组。 返回的读取的个数
char []cbuf=new char[1024];
int ch=0;
for (;(ch=fr.read(cbuf))!=-1 ; )
{
/*每次输出读取到的个数*/
System.out.print(new String(cbuf,0,ch));
}
}
catch (IOException e)
{
System.out.println("io异常");
}
finally
{
try
{
if(fr!=null)
fr.close();
}
catch (IOException o)
{
System.out.println("关闭流异常");
}
}
}
}
文件复制
/*
复制Demo2.java到Demo2_copy.txt
思路:
先读取文件
在写出文件
*/
import java.io.*;
class Demo9
{
public static void main(String[] args)
{
FileReader fr=null;
FileWriter fw=null;
try
{
fr=new FileReader("Demo2.java");//源
fw=new FileWriter("Demo2_copy.txt"); //目的地
char []chs=new char[1024];
int ch=0;
for (;(ch=fr.read(chs))!=-1; )
{
fw.write(new String(chs,0,ch));
}
}
catch (IOException e)
{
System.out.println("IO异常");
}
finally
{
try
{
if(fr!=null)
fr.close();
}
catch (IOException e)
{
System.out.println("关闭读取流失败");
}
try
{
if(fw!=null)
fw.close();
}
catch (IOException e)
{
System.out.println("关闭输出流失败");
}
}
}
}
—————————— ASP.Net+Android+IOS开发、.Net培训、期待与您交流!——————————