Java基础第十八天学习日记_Util包中一些有用的类、IO流

------- android培训java培训、期待与您交流! ----------

System:类中的方法和属性都是静态的。

常用方法:

out:标准输出,默认是控制台。

in:标准输入,默认是键盘。

Properties  getProperties();获取系统属性信息。因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。那么可以通过map的方法取出该集合中的元素。该集合中存储的都是字符串。没有泛型定义。

setProperties("mykey""myvalue");自定义一些特有的信息。

java -Dhaha=pppp SystemDemo在启动JVM时,动态加载一些属性信息。

import java.util.Properties;

public class SystemDemo
{
	/**
	 * @系统信息	 */
	public static void main(String[] args) 
	{
		Properties prop=System.getProperties();//获取系统信息
		System.setProperty("mykey","myvalue");//设置自定义的系统信息
		String myvalue=prop.getProperty("mykey");//获取特定的属性信息
		System.out.println(myvalue);
		for(Object obj:prop.keySet())
		{
			String value=(String)prop.get(obj);
			System.out.println(obj+","+value);
		}
	}
}

 Runtime对象:每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。可以通过getRuntime方法获取当前运行时。该类并没有提供构造函数。说明不可以new对象。那么会直接想到该类中的方法都是静态的。发现该类中还有非静态方法。说明该类肯定会提供了方法获取本类对象。而且该方法是静态的,并返回值类型是本类类型。由这个特点可以看出该类使用了单例设计模式完成。

如:Runtime r = Runtime.getRuntime();

Process p = r.exec("winmine.exe");//在引号中可以添加一个文件名,表示由前面的程序执行后面的文件。

P.destroy();//销毁线程。

Date类:

创建新的date对象:Date d = new Date ();

封装日期模式:SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日E  hh:mm:ss")

调用format方法让模式格式化指定Date对象:String time = sdf.format(d);

如果要获取单独的年月日,可以通过查表法获取。

Calendar类自定义时间:

Calendar c = Calendar.getInstance();

C.set(2012,02,23);//设置年月日。

向前后推算日期:c.add(Calendar.DAY_OF_MONTH,-18);//负数表示向以前推算,正数表示向以后推算。

import java.util.Calendar;

public class DateDemo2
{
	/**
	 * 单独获取时间中的某一项
	 */
	public static void main(String[] args) 
	{
		Calendar cal=Calendar.getInstance();
		cal.set(2012,07,27);//设置的时间不能超过当前时间。
		cal.add(Calendar.MONTH, 1);//将某一项属性向前或向后推指定的量。
		//MONTH指示月份的 get 和 set 的字段数字。	这是一个特定与日历的值。一月对应为0;
		String[] mons={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
		//星期天为1,为开始。
		String[] weeks={"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
		System.out.print(cal.get(Calendar.YEAR)+"年");
		System.out.print(mons[cal.get(Calendar.MONTH)]);
		System.out.print(cal.get(Calendar.DAY_OF_MONTH)+"日");
		System.out.print(weeks[cal.get(Calendar.DAY_OF_WEEK)]);
	}
}

Math接口:

常用方法:

ceil(16.34);//返回大于指定数据的最小整数。

floor (12.34);//小于指定数据的最大整数。

round(12.54);//四舍五入

获取随即0-10整数:int d = (int)(Math.random()*10+1);

方法二:Random r = new Random();

Int d = r.nextInt(10)+1;

IO流:

IO流用来处理设备之间的数据传输。

Java对数据的操作是通过流的方式。

Java用于操作流的对象都在IO包中。

流按照操作数据分为两种:字节流与字符流。

流按照流向分为:输出流,输入流。

字节流的抽象基类:InputStream,OutputStream

字符流的抽象基类:Reader,Writer。

这四个基类派生出来的子类名称都是以其父类名作为子类名的后缀。前缀名一般都是该流对象的功能。

FileWriter类:该类主要是操作文件的。

一般流程:

1.创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。FileWriter fw = new FileWriter("demo.txt");//可以传递一个true参数,代表不覆盖已有的文件,并在已有文件的末尾处进行数据续写。

2.调用write方法,将字符串写入到流中。Fw.write("abcde");

3.刷新流对象中的缓冲中的数据。将数据刷到目的地中。fw.flush();

4.关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。将数据刷到目的地中。和flush的区别:flush刷新后,流可以继续使用,closeshuaxin后,会将流关闭。

FileReader:

1.创建一个文件读取流对象,和指定名称的文件相关联。要保证该文件是已经存在的,如果不存在,会发生FileNotFoundException异常。

2.【方法一】调用读取流对象的read方法。一次读一个字符。而且会自动往下读。 

2.【方法二】定义一个字符数组。用于存储独到字符。该read(char[])返回的hi读到字符个数。

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileReaderDemo
{
	/**
	 * 利用字符数组读取字符流文件。
	 */
	public static void main(String[] args)
	{
		try 
		{
			FileReader fr=new FileReader("DateDemo.java");
			char[] buf=new char[1024];
			int num=0;
			if((num=fr.read(buf))!=-1)
			{
				System.out.println(new String(buf,0,num));
			}
			fr.close();
		} 
		catch (FileNotFoundException e) 
		{
			e.printStackTrace();
		} 
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}

------- android培训java培训、期待与您交流! ----------  详细请查看:http://edu.csdn.net/heima/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值