查看: 195|回复: 3

android序列化中的StreamCorruptedException异常

[复制链接]

该用户从未签到

2

主题

3

帖子

30

积分

Lv 1 :新手上路

Rank: 1

积分
30
发表于 2019-10-9 19:19:15 | 显示全部楼层 |阅读模式
内容
在做序列化的时候出现了StreamCorruptedException这个异常,是在执行到 ObjectInputStream objectInputStream=new ObjectInputStream(inputStream);这一步的,这个异常官方解释也不太看得懂,请问大家什么意思。。。


  1. public AccessTokenObject deSerialize(String str){

  2.         AccessTokenObject object=null;

  3.         try {

  4.             String readStr=java.net.URLEncoder.encode(str,"UTF-8");

  5.             byte[] bytes=readStr.getBytes("ISO-8859-1");

  6.             ByteArrayInputStream inputStream=new ByteArrayInputStream(bytes);

  7.             ObjectInputStream objectInputStream=new ObjectInputStream(inputStream);

  8.             object=(AccessTokenObject)objectInputStream.readObject();

  9.             inputStream.close();

  10.             objectInputStream.close();

  11.         } catch (UnsupportedEncodingException e) {

  12.             e.printStackTrace();

  13.         } catch (StreamCorruptedException e) {

  14.             e.printStackTrace();

  15.         } catch (IOException e) {

  16.             e.printStackTrace();

  17.         } catch (ClassNotFoundException e) {

  18.             e.printStackTrace();

  19.         }



  20.         return object;

  21.     }
复制代码

               

帖子地址: 

该用户从未签到

1

主题

4

帖子

29

积分

Lv 1 :新手上路

Rank: 1

积分
29
发表于 2019-10-9 19:25:17 | 显示全部楼层
objectInputStream.close();

inputStream.close();



对调,然后finally方法块中也进行处理一下。
回复

使用道具 举报

该用户从未签到

1

主题

5

帖子

30

积分

Lv 1 :新手上路

Rank: 1

积分
30
发表于 2019-10-9 19:31:18 | 显示全部楼层
引用 1 楼 ganshenml 的回复:
objectInputStream.close();

inputStream.close();



对调,然后finally方法块中也进行处理一下。






都执行不到close方法啊,不过我把序列化方法里面的IO流调换了一下,没效果啊



private String serialize(Student student){

        String str=null;

        ByteArrayOutputStream outputStream=new ByteArrayOutputStream();

        try {

            ObjectOutputStream objectOutputStream=new ObjectOutputStream(outputStream);

            objectOutputStream.writeObject(student);

            str=outputStream.toString("ISO-8859-1");

            str=java.net.URLEncoder.encode(str,"UTF-8");

            outputStream.close();

            objectOutputStream.close();

            Log.i("serial",str);

        } catch (IOException e) {

            e.printStackTrace();

        }

        return str;

    }
回复

使用道具 举报

该用户从未签到

1

主题

5

帖子

30

积分

Lv 1 :新手上路

Rank: 1

积分
30
发表于 2019-10-9 19:36:18 | 显示全部楼层
http://blog.csdn.net/abc6368765/article/details/51365838
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表