黑马程序员 其他对象 I/O

来源:互联网 发布:淘宝互刷平台 编辑:程序博客网 时间:2024/06/08 14:53
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

1、System:类中的方法和属性都是静态的
    out:标准输出
    in :标准输入
    描述系统一些信息
    
    获取系统属性信息:Properties getProperties()


2、Runtime
    该类并没有提供构造函数
    说明不可以new对象,那么会直接想到该类中的方法都是静态的
    发现该类中还有非静态方法
    说明该类肯定会提供了方法获取本类对象。而且该方法是静态的,并且返回值类型是本类类


    该方式是static Runtime getRuntime()
    有这个特性可以看出该类使用了单例设计模式完成
    
    Runtime r=Runtime.getRuntime();
    Process p=r.exec("ww");//运行ww
    Thread.sleep(4000);    //进程暂停4秒
    p.destroy();        //停止(结束)子进程 p

3、Date
        Date d=new Date();
        System.out.println(d);
        //将模式封装到SimpleDateFormat对象中
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd E hh:mm:ss");
        //调用format方法,让模式格式化指定Date对象
        String t=sdf.format(d);
        System.out.println(d);
        System.out.println(t);
        
        //单独获取某个时间值
        //方法1
        SimpleDateFormat Singlesdf=new SimpleDateFormat("yyyy");
        String year=Singlesdf.format(d);
        System.out.println(year);
        //方法2
        Calendar c=Calendar.getInstance();
        System.out.println(c.get(Calendar.YEAR)+"年");
        System.out.println(c.get(Calendar.MONTH)+1);
        System.out.println(c.get(Calendar.DAY_OF_MONTH));
        System.out.println(c.get(Calendar.DAY_OF_WEEK));

4、Math
    abs    绝对值
    e    自然底数
    PI    π
    ceil()    返回大于等于该数值的最小整数
    floor() 返回小于等于该数值的最大整数
    round() 四舍五入
    pow(a,b);a的b次幂
    random    随机数
random()     0~1
random()*10      0~10
nextInt(10)+1    0~10


    
5、I/O
    字节流抽象基类:InputStream,OutStream
    字符流抽象基类: Reader , Writer
    
    FileWriter fw=new FileWriter("E:\\java_heima\\xuxiedemo.txt",true);
    //添加一个true参数,表示不覆盖同名文件



例    
    需要:在硬盘上,创建文件,并写数据
    
        //1)创建一个FileWriter对象,该对象一被初始化就必须要明确被操作的文件
        //而且该文件会被创建到指定目录下,并且覆盖同名文件
        FileWriter fw=new FileWriter("E:\\java_heima\\demo.txt");//明确存放的位


        
        //2)调用write方法,将字符串写入到流中,
        fw.write("abcd");
        //3)方式1
        //刷新流对象的缓冲中文件的数据
        //将数据刷到目的地中
        //fw.flush();
        
        //3)方式2
        //关闭数据流,但是在关闭前,会刷新一次内部的缓冲中的数据。
        //将数据刷到目的地中,
        //和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭
        //fw.close();
        //fw.write("king");
------详细,处理异常
        FileWriter fw=null;
        try {
            fw = new FileWriter("E:\\java_heima\\demo2.txt");
            fw.write("E:\\java_heima\\demo2.txt");
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            System.out.println(e.toString());
        }
        finally
        {
            try {
                if(fw!=null)
                    fw.close();
            } catch (IOException e) {
                System.out.println(e.toString());
            }
        }    


6、I/O
    Read
    方式一

        //创建一个文件读取流对象,和指定名称的文件相关联。
        //要保证该文件是存在的,不然会异常
        FileReader fr=new FileReader("E:\\java_heima\\demo.txt");
        
        //调用读取流对象的read方法,每次读一个
        //int ch=fr.read();
        //System.out.println("ch="+(char)ch);
        int c=0;
        while((c=fr.read())!=-1)
        {
            System.out.println((char)c);
        }

    方式二

        FileReader fr=new FileReader("E:\\java_heima\\demo.txt");
        
        //定义一个字符数组,用于存储读到字符
        //该read(char[])返回的是读到字符个数
        char[] buf=new char[3]; //一般定义1024的倍数
        
        int num=fr.read(buf);
        System.out.println(num+"==="+new String(buf));

        //new String(buf,0,num);这样可以控制长度

        int num2=fr.read(buf);
        System.out.println(num2+"==="+new String(buf));
        
        int num3=fr.read(buf);
        System.out.println(num3+"==="+new String(buf));
        fr.close();

0 0