00:00
那行吧,那咱们再往下看看标准的输出流,各位啊,标准输出流。ARM。标准输出流这两个,我们只说这一个,各位啊。桌面上那个文件删了吧。来继续啊。我们新建一个class,我们叫做print stream。行吧,哎。好了,这是一个标准的啊,Print stream叫Java IO下面的这个流啊,叫标准的字节输出流。默认输出到哪啊,控制台我不知道大家有没有注意到啊,我们来看看啊system.out.printline打印输出是不是,哎,我们输出一个hello word。那雨彤老师这是什么鬼,我们运行一下,大家看是不是输出到我们的这个控制台上啊,对吧?童老师这个跟什么,跟print stream有啥关系,来来看看啊,system.out这个点out它返回的是个啥。
01:11
是。对吧,这个属性返回的这个print stream你明白吧。哎,返回这个print,看见没这导进来,然后接下来你看点print LN还可以分开写呢,对不对,哎,Hello,张三,然后再来一个。对不对,Hello,李四啊,再来一个。Hello,王五对不对,哎,你看标准输出流不需要你关闭啊,标准输出流不需要关闭。不需要手动啊。这是联合起来写吧,哎,就是这样的啊,联合起来写就是这样写的,你分开写就是这样的。
02:11
对吧,你system它是一个类啊,系统类啊out呀,拿出都是子dream是不是,哎输出你看。是不是hello word hello的hello,李四,Hello王五。对不对,现在现在大家看这个代码就能够理解了,因为它是一个属性。System out是拿到一个类型之后呢,后面这个print LN方法实际上是这个的方法,这个PS print你点看看。对吧,这个print LN是print stream里边这个对象它的方法,这个方法你看打印字符串呀,对吧?可以打印object呀,是不是?哎,它还可以打印什么呀,我们的其他类型对吧?Double啊,是不是float呀,对吧,Long吧,哎,这几个方法是方法名一样,参数里边不同,构成方法重载对吧?这个方法和这个方法方法名一样,都在同一个类里边,参数类型不同,所以构成方法的重载嘛,是不是?哎,方法重载,所以我们只需要记这一个方法就行了,你看。
03:11
Print print是不是,哎,第一个方法,那么有同学老师咱们讲这个干什么呢?主要是这样的,各位啊,我们能不能改变输出方向呢?我们可以改变。这个字,这个标准输出流的输出方向吗。可以改变标准输出流的输出方向吗?这个答案当然是可以的,怎么改变呢?这个system这个类啊,注意听了啊,System这个类啊,它里边有一个方法叫set out。你看set out又又来一个啊,System这这块我们也接触不少了,对吧?System点什么呀,GC呀,是不是,哎,system.current millions啊对不对,哎,System点什么呀,Out呀,是不是哎,Out反回print stream对不对?哎,然后system这一块还有啥。
04:02
SIM这块还有啥呀,还有这个看看exit是不是,哎,退出Java虚拟机C点看看还有啥。就就就就这个了吗,别的是不是也没没讲啥。Load set out,没了没了。啊,之前C类用过的这个属性和方法啊。哎,这个是之前。对吧,啊。这些是之前system类使用过的。方法和属性啊和属性,那现在可以改变它的输出方向吗?大家看system这个类啊,它有一个方法叫set out set什么意思啊,表示设置是不是,哎设置啊。哦对对对对对对,哎呀c every go啊有有有有有有有有有有有有有这个啊有这个,哎,数组拷贝啊,这不写了不写了啊来,那么这块呢,我们可以改变输出方向吗?输出方向这块的话,我们直接sit点什么呀,叫做set out是不是?哎你看这个参数是不是可以跟一个print stream啊。
05:15
是不是,哎,那这个print我们可不可以new一个呢,New一个print呢。这个在的时候需要传一个啥呢。这个能不能一个,你看这边可以out。里边需要一个。Print stream,你有一个什么呀,叫print stream。的时候,我们可以点。大家看这个构造方法里面是不是需要跟一个output stream。所以这块大家看我能不能new一个file output stream呢?可以吧,这里是不是跟一个文件呀,我们叫log file吧,啊日志文件行吧,然后这块呢,可能有异常,有异常咱们先不用管了,各位啊,扔出去了。
06:07
Exception啊。然后呢,这个呢,能不能把上面这个流作为参数传进去,这是一个流对吧,叫标准输出流,不再指向哪控制台指向哪啊,指向log文件。你看指向了一个log文件,看见没?标准输出流不再指向控制台,指向一个log文件,然后接下来我们修改输出方向对吧?将输出方向修改到哪啊,将输出方向修改到log文件。那么现在我们再输出啊,再输出我们会发现输出一个什么呀,哎,我们输出一个什么呀,叫hello word,然后呢,我们再输出一个hellokitty,我们再输出一个hello张三行吧,那这样的话,我们输出了,我们再去执行,我们看看这个hello word hellokitty hello张三,他还会不会输出上面这个会正常输出是吧?Hello word hello张三,Hello李四哈,王五这几个是正常输出的,那再往下这几个还会不会往控制台上输出呢?来我们执行一下,大家看一看。
07:26
我们会发现什么呢?发现hello word hello张三hello李四hello王五这几个是正常执行了,但自从我们改了它的输出方向之后,Hello word hellokitty和hello张三并没有输出,在控制台上,我们看这里多了一个文件,这个文件叫log,我们打开你看。看见了吧,哎,这个是不是输出就输以后就输出到以后就输出到哪了,同学们是不是就输到文件里边来啊,哎,以后就输出到文件当中了。就再使用这个点out.print打印输出的话,它就不在这个控制台上了,看见了吧,它就输出到文件里边了。
08:03
啊,这就是这个日志框架的一个实现原理啊,以后大家可能会用一些日志框架,它是怎么实现的,我们可以看一看class,我们叫log u。Log啊。日志工具。是不是怎么写可以输入到控制台。嗯,怎么写,可以输入到控制台。怎么写可以,你不用改它就输入到控制台啊。你不改它就是输的控制台啊。怎么写可以输入到困难。你不改就没事儿。你不改它就没事儿啊,来看看啊。我们在这块。改完切不回来了。
09:04
你改的话,你就再set out呗,是吧,再set out,再set out啊。嗯,就是感兴趣是吧,感兴趣行,咱们先看这个日志工具啊,日志工具,假如说我们记录日志是吧,Logo u这边这边假如这个叫log吧,啊logo吧,Logo工具啊来我们重新命个名叫log,然后里边呢,我们。写一个方法,Public static void,我们叫log log log啊,传一个消息进来,啊,传个消息进来。然后呢,我们这块呢,嗯。记录日的话,我们system.set out呗,是不是这准备一个print什么呀,Stream啊,然后这是一个out,你有一个什么呀,Print stream,然后这个里面丢一个什么呀,叫file out put stream,然后这块呢,我们只将一个文件啊叫log file吧,假如说日志文件行吧,log.t文件啊,准备这么一个文件,然后接下来呢,这块呢有异常,异常这块呢,我们就先try catch一下。
10:10
然后我们改变一下这个流的方向,这个流的方向我们直接设置out。然后接下来呢,我们就直接system.out.print打印啊,我们输出什么呀,这边你也可以加一个to。我们输出个信息啊,输出个什么信息啊,获取系统当前时间吧,Date now time啊,你有一个date,这是不是系统当前时间啊,哎,系统当前时间啊,把这个导进来,拿到系统当前时间之后呢,我们系统在时间格式化,Data format simple data format,你有一个什么呀,Simple data format。然后这块呢,给个日期格式,Yyyy imddhhmssssssi,行吧,然后接下来把这个消息拿过来,来这个时间怎么拿,等于now等于sdf.format把这个now time拿过来,这样的话就是进行一个日期格式化,各位啊,这是一个标准输出流,指向什么呀?指向一个日志文件啊,然后再往下是改变什么呀。
11:20
改变输出方向。是不是啊,改变输入方向啊,然后接下来在这边呢,我们有一个什么呀,叫做日期当前时间啊格式化,拿到这个日期之后呢,我们把这个str time啊,我写完你就理解了啊,Time加一个冒号啊,发生了什么什么事件,是不是哎这个事件就这个message就行了,你看message。把这个message过来就完事了啊,那我们可以测试一下这个日志文件,这个日志方法能不能用。记录日志的方法。来,我们在这写个测试类。我们写个class and log test。
12:03
Psv等于写了个工具类,各位啊,测试工具类是否好用?对吧,那你调呗,你就log呗,是不是它有个方法叫什么log对吧,你记个消息hello,对吧,就是说调用了system类的GC方法,建议启动垃圾回收是吧?哎。点什么log,哎,你再传个消息进去是吧,你说调用了这个呃,User service的啊,这个do some方法是不是,哎,或者你再来一个log。第二什么呀,Log对不对啊,记录日志嘛,Log,那这边的这个消息你再写上,嗯,比如说用户尝试进行登录验证失败是吧?哎,你可以点右键执行一下。
13:07
好,大家看这个记录,这个日志是放哪个文件,放那个文件里边叫logo什么。T吧,你看打开你看2002年3月11号15:41:40 437毫秒调用了这个类的这个方法,建议启动垃圾回收是吧?这年月日十分秒都能捕捉到调用了什么这个user service do some方法,这就是这个日志文件呀,对吧?哪年哪月哪日,几十几十几分几几秒,几毫秒都干了什么事,你以后想记录日,你可以调这个工具啊,我写这个工具吗?写这个方法是不是记日志的。啊,然后呢,这个地方你有这个print stream set out,然后呢,这是一个系统当前时间吗?系统当前时间拿到之后呢,Simple data format格式化,格式化成这个字符串之后呢,传进去呗,这地方有个冒号,后边个消息,这个消息不就是你这个参数对吧?那个参数传过的消息嘛,你要记住日志你就记呗,对吧,Log是不是啊,点log对吧?哎,我非常喜欢这个记录日志的工具哦。
14:05
来看。执行。对吧,他又记录日志了,来看看,你看是不是又记录日志了。对吧,哎,又进入这个为什么是追加的形式,为什么之前日志信息没有被清空啊。什么原因啊,哎,因为我这个地方用的是追加呀。你有这个file out stream的时候,这个位置用的是追加的方式,看见了吗?我们系统通常有很多是需要记录日志的。比如说你今天啊,今天有人干什么呀,使用你的网银,你你你你登录网银,登录网银大家知道登录网银这个是比较危险的一个动作,是不是,那对于银行来说,他要不要记录日志啊,得记下来对吧,哪年哪月哪日,几时几分几秒,谁登录了,登录的结果是失败了还是成功了,对吧,他可能会记录一下。对吧,哎,会记录一下,将来出问题之后好找啊。对不对,出问题时候好找,就这意思。
15:01
日志是一个系统当中,是实际上是比较重要的一个东西啊,比较重要的东西行了,那关于这个呢,我们就说到这儿各位啊,那这样的话,这个流呢,我们这两个就说完了,这个是一个字符方式,这是字节的方式啊。对这两个无所谓了,无所谓掌掌握其中一个就可以啊,掌握其中一个就可以标准的输出流啊,标准输出流。行,这个就说到这儿啊。
我来说两句