在下面这个程序中就运行正常,只是不知为何在写入的文件Test.java中除了需要写入的string外,还自己写入了一些乱码。
package delprog;
import java.io.*; public class delFile4 {
String mFilename;
private String mDele="Log.Print(";
  public delFile4(String filename){
}
public static void main(String[] args) {
try {
File MyPath=new File("f:\\temp");
File myfile=new File(MyPath,"Test.java");
RandomAccessFile fileIn=new RandomAccessFile(myfile,"rw");
RandomAccessFile fileIn2=new RandomAccessFile(myfile,"rw");
String d="test";
String d2="8054";
String d3="!@%$#";
FileOutputStream f = new FileOutputStream(myfile);
ObjectOutputStream s = new ObjectOutputStream(f);
s.writeObject (d);
s.writeObject(d2);
s.writeObject(d3);
f.close ();            }
catch(IOException ioe)
{System.err.println(ioe.toString());
}
    }
}

解决方案 »

  1.   

    ObjectOutputStream只有两个构造函数,
    ObjectOutputStream(OutputStream out)
    ObjectOutputStream()
    FileWriter extends OutputStreamWriter 
    OutputStreamWriter extends Writer
      

  2.   

    为什么我两个文件都用了ObjectOutputStream,但只有一个认识?我是用editplus和记事本打开都是一样
      

  3.   

    用记事本打开是这样: t testt 8054t !@%$#
      

  4.   

    问一:是这句出的错:
    ObjectOutputStream s = new ObjectOutputStream(f);因为 f 声明为:FileWriter f=new FileWriter(myfile);实际上:ObjectOutputStream 带参数的构造函数只有一个就是:
    ObjectInputStream(InputStream in) 
              Creates an ObjectInputStream that reads from the specified InputStream.你看到了吧!你的参数f的类型错了!!!
    问二:至于乱码,是因为测试程序要方方面面都想到,不能只测试常规字符串,非常规的也要测试。
      

  5.   

    谢谢,但是我不管用什么样的string,都会产生乱码这怎么办呢?