A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一帆风顺 中级黑马   /  2012-12-24 14:26  /  1408 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王博 于 2012-12-25 13:53 编辑

import java.io.*;
import java.util.*;
class  UnSerializaDate
{
         Date d = null;
         UnSerializaDate()
         {
              try
              {
                     FileInputStream f = new FileInputStream("date.ser");
                     //ObjectInputStream s = new ObjectInputStream(f);     //这俩步具体是什么意思啊?我直接调用f的read()也能读出来啊
                     //d = (Date)s.readObject();                                         //为什么要写这两步啊
                     f.read();
                     f.close();
              }
              catch (Exception e)
              {
                     e.printStackTrace();
              }
         }
         public static void main(String[] args)
         {
              UnSerializaDate a = new UnSerializaDate();
              System.out.println("the date read is:"+a.d);
         }
         
}

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

3 个回复

倒序浏览
//ObjectInputStream s = new ObjectInputStream(f);     //这俩步具体是什么意思啊?我直接调用f的read()也能读出来啊
//d = (Date)s.readObject();                                         //为什么要写这两步啊
这个是用于操作对象的字节流,这两句的作用的将文件中的数据读取出来,变成Date类型的对象

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报

//ObjectInputStream s = new ObjectInputStream(f);     //这俩步具体是什么意思啊?我直接调用f的read()也能读出来啊
//d = (Date)s.readObject();                                         //为什么要写这两步啊
d = (Date)s.readObject();   将字节流中的数据对象读取出来,强制转换为Date类型的,
下面的main函数里就用到了这个功能:System.out.println("the date read is:"+a.d);
这里你只用到了输出,感觉不到变成Date类型的作用了,假如你用Date里面的方法就感受到差别了:比如:
  1. import java.io.*;
  2. import java.util.*;
  3. class  UnSerializaDate
  4. {
  5.          Date d = null;
  6.          UnSerializaDate()
  7.          {
  8.               try
  9.               {
  10.                      FileInputStream f = new FileInputStream("date.ser");
  11.                      //ObjectInputStream s = new ObjectInputStream(f);     //这俩步具体是什么意思啊?我直接调用f的read()也能读出来啊
  12.                      //d = (Date)s.readObject();                                         //为什么要写这两步啊
  13.                      f.read();
  14.                      f.close();
  15.               }
  16.               catch (Exception e)
  17.               {
  18.                      e.printStackTrace();
  19.               }
  20.          }
  21.          public static void main(String[] args)
  22.          {
  23.               UnSerializaDate a = new UnSerializaDate();
  24.               System.out.println("the date read is:"+a.getHours());
  25.          }
  26.          
  27. }
复制代码
回复 使用道具 举报
上面的代码与你的区别在main函数中的第二行:
  1. System.out.println("the date read is:" + a.getHours());
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马