package aa;
import   java.util.*;   
import java.io.*;public class Main {
    public  static class tt  implements Serializable      {
        int num;
    }    public static void main(String[] args) 
    {
        try{
        FileOutputStream   fos=new   FileOutputStream("a.txt");   
  ObjectOutputStream   oos=new   ObjectOutputStream(fos);   
  tt []v=new   tt[100];   
  tt vv=new tt();
  v[0]=vv;
  v[0].num=11;
  oos.writeObject(v);   
  oos.close();   
  
           FileInputStream   fis=new   FileInputStream("a.txt");   
  ObjectInputStream   ois=new   ObjectInputStream(fis);   
  tt   v1=(tt)(ois.readObject());   
  System.out.println(v1.num);   
  ois.close();   
        }
        catch(IOException e)
        {
            System.out.println(e);
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
    
}怎么a.txt出现乱码,程序没有输出?????

解决方案 »

  1.   

    写两个类.一个main方法,一个写Value.public class Main { 
        public  static class tt  implements Serializable      { 
            int num; 
        }     public static void main(String[] args) 
    ---
    这里就有问题..你到底要这个类做什么? 类里面还有类.两个文件,放在一个package里面.一个是main,一个是value.----另外不要用什么tt vv aa bb做变量名
      

  2.   

    oos.writeObject(v);  写入的是对象,难道你认为是txt文件?呵呵
      

  3.   

            catch(Exception e) 
            { 
                System.out.println(e); 
            } 
    这个异常出现??我觉得  FileInputStream  fis=new  FileInputStream("a.txt");  
      ObjectInputStream  ois=new  ObjectInputStream(fis);  
      tt  v1=(tt)(ois.readObject());  
      System.out.println(v1.num);  
      ois.close();  
    错了,望回复!
      

  4.   

    呵呵,反序列化时变量类型要一致啊
    别输入的是数组,读出是却要转型成数组元素ClassCastException
    btw:乱码是正常的 这属于过程内部编码 只反序列化出来正确就行了
      

  5.   

    那应该怎么输入对象,才能输出是显示v1.num????
      

  6.   

    是要对应tt[] v1 = (tt[]) (ois.readObject());
    System.out.println(v1[0].num);
      

  7.   

     FileOutputStream  fos=new  FileOutputStream("a.txt",true);  应该是这样
      

  8.   

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;public class Main {
    public static class tt implements Serializable{
    public int num; @Override
    public String toString() {
    // TODO Auto-generated method stub
    return num+"";
    }

    } public static void main(String[] args) {
    try {
    FileOutputStream fos = new FileOutputStream("a.txt");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    tt[] v = new tt[100];
    tt vv = new tt();
    v[0] = vv;
    v[0].num = 11;
    oos.writeObject(vv);
    oos.close(); FileInputStream fis = new FileInputStream("a.txt");
    ObjectInputStream ois = new ObjectInputStream(fis);
    tt v1 = (tt) (ois.readObject());
    System.out.println(v1.num);
    ois.close();
    } catch (IOException e) {
    System.out.println(e);
    } catch (Exception e) {
    System.out.println(e);
    }
    }}
    向上面程序可以看见输出~
    a.txt是乱码正常~你写的对象!!
      

  9.   

    这个代码还是不行!请问这是为什么?
    错误提示如下:
    Exception in thread "main" java.lang.NoClassDefFoundError: w
    Caused by: java.lang.ClassNotFoundException: w
            at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    Could not find the main class: w.  Program will exit.
    请按任意键继续. . .
    望快点回复!谢谢