Java ObjectInputStream中的StreamCorruptedException

Java ObjectInputStream中的StreamCorruptedException,java,android,xml,Java,Android,Xml,我正在尝试从SD卡读取XML文件,并将其转换为对象类型。 问题是,当我使用FileInputStream读取文件并将FileInputStream对象传递给ObjectInputStream时,我得到一个异常streamcorruptedeexception //gets external storage dir File externalstoragedir = Environment.getExternalStorageDirectory(); //gets the path to fi

我正在尝试从SD卡读取XML文件,并将其转换为对象类型。 问题是,当我使用
FileInputStream
读取文件并将
FileInputStream
对象传递给
ObjectInputStream
时,我得到一个异常
streamcorruptedeexception

//gets external storage dir
File externalstoragedir = Environment.getExternalStorageDirectory(); 

//gets the path to file.
File externaltestcasefile = new File(externalstoragedir + "/" + FILENAME); 

//FileInputStream fis = new FileInputStream(externaltestcasefile); 

BufferedInputStream br = new BufferedInputStream(new FileInputStream(externaltestcasefile));

//Convert to ObjectInput Stream.
ObjectInputStream ois = new ObjectInputStream(br);

//read the data from the ObjectInputStreamto Object.
Object fileData = ois.readObject();
即使我使用了BufferInputStream,但也看到了相同的异常

在传递到
ObjectInputStream
之前,是否有任何方法可以直接将XML转换为对象类型

我必须根据我的项目使用
ObjectInputStream

任何帮助都是值得的


任何现有的解决方案都没有帮助

在我看来,您试图将从XML文件读取的FileInputStream推送到ObjectInputStream中。这将导致StreamCorruptedException,因为ObjectInputStream需要java序列化对象格式[1]的输入,但它看到的是字符流

您的问题有几种解决方案:

如果您试图从XML中获取特定于Android的对象,那么您很可能应该从Android API中的相关函数中获取它

如果这与Android API无关,那么有几个包可以处理XML序列化[2]

1:这个有一个规范的名字,但我一下子记不起来了

2: