Java课后总结18(序列化、反序列化、StringBuffer类、日期操作类)

本文介绍了Java中序列化和反序列化的步骤,包括实现Serializable接口,创建对象输出流和输入流,以及如何读写对象。同时,详细讲解了StringBuffer类的常用方法,如append、insert和replace。最后,讨论了Date类和Calendar类在处理日期操作中的应用,包括日期格式化和获取年月日的方法。
摘要由CSDN通过智能技术生成
序列化、反序列化
    1、序列化 ObjectOutputStream将对象的状态写入到特定的流里边的过程;(二进制的字节序列)
    2、反序列化: ObjectInputStream从特定的流中获取数据重新构建对象的过程;
    实现序列化:

1、引入相关类

                 2、实现 Serialzable接口

                   3、创建对象输出流

                      4、调用writeObjrct()方法将对象写入文件

                           5、关闭对象输出流

   实现反序列化:

                 1、引入相关类

                    2、创建对象输入流

                      3、调用readObjrct()方法读取对象     (注:读取是要注意强制类型转换

                          4、关闭对象输入流

    参考代码:

public class Test {         
public static void main(String[] args) {
OutputStream os=null;                      
ObjectOutputStream oos=null;
InputStream is=null;
ObjectInputStream ois=null;
try {
os=new FileOutputStream("D:/BABA.txt");                    //创建输出流
oos=new ObjectOutputStream(os);
is=new FileInputStream("D:/BABA.txt");                      //创建输入流
ois=new ObjectInputStream(is);
Student stu=new Student(24, "小明", "男");
oos.writeObject(stu);                                                       //对象序列化写入输出流

Student stu1=(Student)ois.readObject();                      //反序列化并,强制把类型转换成Student类
System.out.println(stu1.toString());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
ois.close();
is.close();
oos.close();
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

StringBuffer类

StringBuffer类位于java.util包,是String类的增强类,提供了很多方法可供使用。

参考代码:

StringBuffer sb=new StringBuffer("青春无悔");              //声明StringBuffer对象,并初始化。

sb.append("我心永恒");                                    //追加文字的方法

String a=sb.toString();                                 //转换成String类,即:字符串

sb.insert(2, ",");                                          // 插入字符串,insert(插入位置, “字符串”)

sb.replace(start, end, str);                          // 替换对象中的字符start=开始位置 end=结束位置  str=替换后的字符串)

日期操作类

1.Deta类

Date date = new Date();         //创建Date类的对象

SimpleDateFormat now =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    //把西方日期格式转换成中方的格式

        String now1=now.format(date);                       //用一个字符串接受,改变格式后的日期时间

System.out.println(now1);

(注:“yyyy-MM-dd HH:mm:ss”为特定格式不能改变大小写)

2.Calendar类

Calendar c=Calendar.getInstance();            //Calendar类是一个抽象类,不能实例化,要用特定的方法实现接口

System.out.println(c.get(Calendar.YEAR)+"年");              //获取年份

                System.out.println((c.get(Calendar.MONTH)+1)+"月") //获取月份,西方月份是从0开始算。所以转换要加+1

                System.out.println(c.get(Calendar.DAY_OF_MONTH)+"日")    //获取当天日期

System.out.println("这一天是星期"+(c.get(Calendar.DAY_OF_WEEK)-1));//获取当天是一周钟的星期几,西方设定星期日为第一天,所以转换时要减-1



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值