byte[] aa;        
file_out  = new FileOutputStream( "c:/dd.dat");
public_out = new ObjectOutputStream(public_file_out);
public_out.writeObject( new String(aa));
System.out.println(new String(aa)));  
  --为什么写入文件的内容与 输出的内容不一样??而且我想从文件中取出字符串送给byte[] bb 怎么做?               这样使aa 与bb一样。

解决方案 »

  1.   

    当然不一样!
    输出的是对象的 toString
    保存的是对象的整体信息.
      

  2.   

    file_in  = new FileInputStream( "c:/dd.dat");
    public_in = new ObjectInputStream(file_in);
    String str = (String)public_in.ReadObject();
    byte[] bb = str.getBytes();
      

  3.   

    写入文件:
    import java.io.*;
    public class  TestIO
    {
    public static void main(String[] args)
    {
    try{
    BufferedWriter bw = new BufferedWriter(new FileWriter(new File("d:/test.txt")));
    bw.write("中国人民共和国");
    bw.flush();
    bw.close();
    }
    catch(IOException e)
    {
    e.printStackTrace();
    }
    System.out.println("Hello World!");
    }
    }
    读取:
    import java.io.*;
    public class  ReadIO
    {
    public static void main(String[] args)
    {
    String str = "";
    try{
    BufferedReader bw = new BufferedReader(new FileReader(new File("d:/test.txt")));
    while((str=bw.readLine())!=null)
    {
    System.err.println("str:  "+str);
    }
    bw.close();
    }
    catch(IOException e)
    {
    e.printStackTrace();
    }
    System.out.println("Hello World!");
    }
    }
    放到byte中的话,这个在string中有方法呢,以上的是小弟刚学的,不知效果好不好呢,楼主试试啦!学习中,讨论中..........
      

  4.   

    再试了一下:
    import java.io.*;
    import java.util.*;
    public class  WriteObjectIO
    {
    public static void main(String[] args)
    {
    String str = "";
    try{        FileOutputStream fos = new FileOutputStream("t.tmp");
            ObjectOutputStream oos = new ObjectOutputStream(fos);        oos.writeInt(12345);
            oos.writeObject("Today");
            oos.writeObject(new Date());        oos.close(); }
    catch(IOException e)
    {
    e.printStackTrace();
    }
    }
    }
    import java.io.*;
    import java.util.*;
    public class  ReadObjectIO
    {
    public static void main(String[] args)
    {
    String str = "";
    try{
            FileInputStream fos = new FileInputStream("t.tmp");
            ObjectInputStream ois = new ObjectInputStream(fos);     int i = ois.readInt();
    System.err.println(i);
            String today = (String) ois.readObject() ;
    System.err.println(today);
            Date date = (Date) ois.readObject();
    System.err.println(date);        ois.close(); }
    catch(ClassNotFoundException ex)
    {
    ex.printStackTrace();
    }
    catch(IOException ex)
    {
    ex.printStackTrace();
    }
    }
    }
      

  5.   

    writeObject 是保存一个实例对象,一个实现了Serializable 接口的对象。
    以供反序列化。即可以从文件重新恢复这个对象。
      

  6.   

    writeObject 是保存一个实例对象,是经过处理的。