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)+"日") //获取当天日期