java学习笔记20

1、System类不能实例化,也就是说不对外提供构造方法,System里面的方法也都是静态的,不需要对象就能调用方法。out本身就是一个对象。Properties是Map的子类。

LINE_SEPARATOR是得到当前系统的换行符的表示方法,不同系统下具体表示方法不同,但是java用了一个变量LINE_SEPARATOR就表示了,体现了java的跨平台特性。



左边是键,右边是值



当然为了简洁,也可以直接把System.getProperty("....")事先定义为常量,方便使用。


2、如果一个类不提供构造函数,也就是说这个类不能创建对象,理论上讲类内部的方法都应该是静态的,但如果方法不是静态的,那一定有一个静态方法返回本类对象,只有这样才能调用那个非静态的方法,只有这一个返回本类对象的方法,说明是单例模式


先在当前路径下找notepad.exe,没有找到就去path路径指定的目录下去找这个exe,要是还找不到就抛异常。注意下图中c:\\Run双反斜杠才表示一个的分隔符的作用,\a单个是转义的意思。


3、Math类中的方法和成员都是静态的。Random()是随机器对象


Date类中,11代表十二月。



5、获取日期格式对象DateFormat也是类,但是不能直接new对象,只能通过方法返回getDataInstance()方法来返回对象

工厂也是设计模式的一种,专门用来生产对象的。



使用DateFormat的子类SimpleDateFormat可以解决自定义日期显示风格的问题。



常用的日期(包含时间)显示格式如下图:


6、DateFormat.getDateInstance()是得到日期对象的默认格式2012-4-19,DateFormat.getDateInstance(DateFormat.Long)是得到日期对象2012年4月19日着种类型的格式,至于自定义的格式就用SimpleDateFormat(“格式”),得到相应的格式后直接把字符串扔进相应格式对象dateFormat.parse()方法,就能转换为Date类型的对象。

7、计算两个字符串日期之间隔了多少天


8、Calendar()类的运用,基本替代了Date()类。

 

int类型变量,调用get(Calendar.YEAR)返回当前时间的int类型的年分,别的类似道理


同时需注意Calendar的月和打印出来的月份差1,如下图所示



9、练习:利用Calendar类的方法,求出任一年的2月有几天

思路:把日子Calendar设为那一年的3月一号,再向前减1天得到2月的最后一天就是2月有几天,相当于Calendar是有万年历功能的,只需查找就ok。



1、IO流



2、IO流之字节流和字符流


3、什么是覆盖?覆盖就是干掉原来的,再重新建一个新的。


就像之前马士兵讲的,FileWriter就相当于一个输出的管子,对准文件将数据写入里面,上图中默认是在当前目录下的demo.txt(没有的话,自动创建),fw.write("ads")write方法就是一支笔,将要写的数据写在txt文件内部,但是并没有保存,相当于要写入的数据还在管子的缓冲器,并没有真正存入txt中,flush()的作用就相当于保存,也即把管子缓存器里的数据立马保存到txt文件内部,fw.close()的作用就相当于先点了次保存,再关掉txt文件,类似先把数据管子缓存区的数据立即全弄到目标文件上,并关掉管子,也即即close()方法中先调用了flush()刷新缓冲区,然后才关闭了系统资源管子。

之所以会抛异常,是因为写的地址有可能是K盘这种不存在的地址,此时就会抛异常。

4、之前说过windows下换行是\r\n,但是Linux下是\n,为了统一使用,方便程序跨平台,用

private static final String LINE_SEPARATOR = System.getProperty("line.separator");查键值。

每执行一次那个就是重新生成一个txt,覆盖以前的txt,以前txt里面的内容也全都没了,如果想在以前的基础上添加新内容,就在构造函数里加true


5、输入输出流一定会抛IoException,一般都是在try外面定义FileWriter类对象,然后在内部初始化赋值,但是如果上面路径挂了抛异常,下面的fw就是空指针,没法调用fw.close()方法,所以上面要加一个if()判断语句。由于close()是必须的所以都定义在finally内部




fr.read()每次读取一个字符,想读出全部内容就要用循环,数据读完返回-1



7、字符流FileReader,fr.read(buf字符串数组),把读到的数据都装到长度为3的数组中去。当读不到新数据,num=-1时就不在读取了。用字符串数组的方式是每次取一个字符转进字符数组中,等装满或数据读完后一次性输出,效率更高。



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值