Java ObjectInputStream中的StreamCorruptedException
我正在尝试从SD卡读取XML文件,并将其转换为对象类型。 问题是,当我使用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
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: