GVKun编程网logo

java.io.StreamCorruptedException:读取多个对象时格式错误(objectinputstream读取多个对象)

13

如果您对java.io.StreamCorruptedException:读取多个对象时格式错误感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于java.io.StreamC

如果您对java.io.StreamCorruptedException:读取多个对象时格式错误感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于java.io.StreamCorruptedException:读取多个对象时格式错误的详细内容,我们还将为您解答objectinputstream读取多个对象的相关问题,并且为您提供关于Android-Studio-2.3错误:java.util.concurrent.ExecutionException:java.lang.RuntimeException:AAPT进程尚未准备好接收命令、C3P0:java.lang.InterruptedException: sleep interrupted、Connection; nested exception is java.sql.SQLException: interrupt,这是什么问题啊?、fastdfs文件上传报错Save file error:java.io.IOException: java.io.IOException: java.io.IOException: recv package size -1 != 10的有价值信息。

本文目录一览:

java.io.StreamCorruptedException:读取多个对象时格式错误(objectinputstream读取多个对象)

java.io.StreamCorruptedException:读取多个对象时格式错误(objectinputstream读取多个对象)

我试图OneChatMessage在每次单击按钮时将对象(类)添加到文件中。然后,我尝试从文件中读取所有对象,并将其加载到ArrayList。但是我在反序列化函数StreamCorruptedException的第二次迭代中得到了一个ObjectInputStream.readObject()。我已经验证了第一次迭代可以正常工作。

我读过许多关于同一问题的其他文章:

  1. 一种建议反序列化多个Java对象是将整个数组列表而不是单个对象写入文件。但这似乎很浪费,因为每次单击按钮时我都需要写入文件,并且随着时间的推移将有数百个对象。
  2. 另一个建议StreamCorruptedException:无效类型代码:AC与ObjectOutputStream创建的不同标头有关。我不知道该用谁来解决这个问题。

关于如何解决这个问题的任何想法吗?

OneChatMessage.java:

package com.slapp.chat;import java.io.Serializable;import java.util.Date;import com.slapp.localDB.Contact;//This class defines the class for a chat messagepublic class OneChatMessage implements Serializable{    private String text;    private Date timeSent;    private Boolean sentByMe;    public OneChatMessage(String text, Date timeSent, Boolean sentByMe){        this.text = text;        this.timeSent = timeSent;        this.sentByMe = sentByMe;    }    public String getText(){        return this.text;    }    public Date getTimeSent(){        return this.timeSent;    }    @Override    public String toString(){        return new StringBuffer(" Text : ")        .append(this.text)        .append(" TimeSent : ")        .append(this.timeSent.toString()) // Need to use SimpleDatFormat to get the correct time zone and formatting. Leaving it for now.        .append(" SentByMe : ")        .append(this.sentByMe.toString()).toString();    }}

序列化功能:

public void addMessage(OneChatMessage msg) {        FileOutputStream fos;        ObjectOutputStream oos;        File file = new File(context.getFilesDir(), "abc");        if (!file.exists()) {            Log.d("faizal",                    "The file does not exist : ");        } else {            Log.d("faizal",                    "The file already exists : ");        }        try {            fos = context.openFileOutput("abc",                    Context.MODE_APPEND);            oos = new ObjectOutputStream(fos);            oos.writeObject(msg);            oos.close();            fos.close();        } catch (FileNotFoundException e) {            Log.d("faizal", "file not found : ");            e.printStackTrace();        } catch (IOException e) {            Log.d("faizal", "Error closing file : ");            e.printStackTrace();        }}

反序列化功能:

public ArrayList<OneChatMessage> getAllChatMessagesArrayList() {        ArrayList<OneChatMessage> chatMessages = new ArrayList<OneChatMessage>();        OneChatMessage oneChatMsg;        FileInputStream fis;        ObjectInputStream ois;        try {            fis = context.openFileInput("abc");            ois = new ObjectInputStream(fis);            //Setting an arbitrarily large number as the limit of the loop iterations            //so that chat message are read from the file till EOF            for (int i = 1; i < 999999999; i++) {                try {                    oneChatMsg = (OneChatMessage) ois.readObject();                } catch (EOFException e) {                    //When EOFException occurs, quit the loop                    break;                }                try{                    chatMessages.add(oneChatMsg);                } catch(Exception e){                    Log.d("faizal","Error adding message to Array List:" + oneChatMsg.getText());                    e.printStackTrace();                }            }            ois.close();            fis.close();            return chatMessages;        } catch (FileNotFoundException e) {            Log.d("faizal", "The file not found : ");            e.printStackTrace();        } catch (IOException e) {            Log.d("faizal", "Error closing file : ");            e.printStackTrace();        } catch (ClassNotFoundException e) {            Log.d("faizal","Error reading object from file : ");            e.printStackTrace();        } catch (UnsupportedOperationException e) {            Log.d("faizal", "Error adding object to array list from file : ");            e.printStackTrace();        }        return null; // in case there was a caught exception    }

Logcat:

05-27 16:56:17.576: W/System.err(25028): java.io.StreamCorruptedException: Wrong format: ac05-27 16:56:17.576: W/System.err(25028):    at java.io.ObjectInputStream.corruptStream(ObjectInputStream.java:701)05-27 16:56:17.576: W/System.err(25028):    at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:814)05-27 16:56:17.576: W/System.err(25028):    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2006)05-27 16:56:17.576: W/System.err(25028):    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1963)05-27 16:56:17.576: W/System.err(25028):    at com.slapp.chat.ChatPersistenceHandler.getAllChatMessagesArrayList(ChatPersistenceHandler.java:62)05-27 16:56:17.576: W/System.err(25028):    at com.example.slapp.ChatSessionActivity$ChatArrayAdapter.<init>(ChatSessionActivity.java:178)05-27 16:56:17.576: W/System.err(25028):    at com.example.slapp.ChatSessionActivity.onCreate(ChatSessionActivity.java:86)05-27 16:56:17.576: W/System.err(25028):    at android.app.Activity.performCreate(Activity.java:5372)05-27 16:56:17.576: W/System.err(25028):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)05-27 16:56:17.576: W/System.err(25028):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)05-27 16:56:17.576: W/System.err(25028):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2362)05-27 16:56:17.576: W/System.err(25028):    at android.app.ActivityThread.access$700(ActivityThread.java:168)05-27 16:56:17.576: W/System.err(25028):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1329)05-27 16:56:17.576: W/System.err(25028):    at android.os.Handler.dispatchMessage(Handler.java:99)05-27 16:56:17.576: W/System.err(25028):    at android.os.Looper.loop(Looper.java:137)05-27 16:56:17.576: W/System.err(25028):    at android.app.ActivityThread.main(ActivityThread.java:5493)05-27 16:56:17.576: W/System.err(25028):    at java.lang.reflect.Method.invokeNative(Native Method)05-27 16:56:17.576: W/System.err(25028):    at java.lang.reflect.Method.invoke(Method.java:525)05-27 16:56:17.576: W/System.err(25028):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)05-27 16:56:17.576: W/System.err(25028):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)05-27 16:56:17.576: W/System.err(25028):    at dalvik.system.NativeStart.main(Native Method)

答案1

小编典典

追加到ObjectOutputStream不能立即使用,因为它会创建多个标头,如
StreamCorruptedException中所述:无效类型代码:AC。

有关解决方案,请参见附加到ObjectOutputStream。

Android-Studio-2.3错误:java.util.concurrent.ExecutionException:java.lang.RuntimeException:AAPT进程尚未准备好接收命令

Android-Studio-2.3错误:java.util.concurrent.ExecutionException:java.lang.RuntimeException:AAPT进程尚未准备好接收命令

大家好,我是 Android-Studio-2.3的新手

我弹出这些错误消息:
错误:java.util.concurrent.ExecutionException:java.lang.RuntimeException:AAPT进程尚未准备好接收命令

错误:任务’:app:mergeDebugResources’的执行失败.

Error: java.util.concurrent.ExecutionException: java.lang.RuntimeException: AAPT process not ready to receive commands

我去过很多网站,但我找不到解决这个问题的办法
顺便说一句,我已经尝试将我的gradle降级到23.0.0或23.0.1,但它仍然无效. Android-Studio要求我下载25.0.0版本但是当我这样做时,上面的错误消息仍然出现!

有没有人有解决方案,我会非常感激:)

解决方法

我有同样的问题,也没有解决它.但:
我假设你试图在Ubuntu上安装android studio?如果我是对的,你可以查看你有哪个操作系统.如果它是64位操作系统,您可以尝试使用以下内容:
sudo apt-get install lib32stdc++6
sudo apt-get install lib32z1

也许有帮助.

C3P0:java.lang.InterruptedException: sleep interrupted

C3P0:java.lang.InterruptedException: sleep interrupted

好好的就报异常了~~

警告: com.mchange.v2.resourcepool.BasicResourcePool@8fce95 -- Thread unexpectedly interrupted while performing an acquisition attempt.
java.lang.InterruptedException: sleep interrupted
	at java.lang.Thread.sleep(Native Method)
	at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
	at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

Connection; nested exception is java.sql.SQLException: interrupt,这是什么问题啊?

Connection; nested exception is java.sql.SQLException: interrupt,这是什么问题啊?

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: interrupt
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: interrupt
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
    at com.sun.proxy.$Proxy100.insert(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
    at com.sun.proxy.$Proxy108.insert(Unknown Source)
    at com.hacker.resaleclient.service.impl.OrderslocalServiceImpl.uploadOrders(OrderslocalServiceImpl.java:81)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.netflix.hystrix.contrib.javanica.command.MethodExecutionAction.execute(MethodExecutionAction.java:116)
    at com.netflix.hystrix.contrib.javanica.command.MethodExecutionAction.executeWithArgs(MethodExecutionAction.java:93)
    at com.netflix.hystrix.contrib.javanica.command.MethodExecutionAction.execute(MethodExecutionAction.java:78)
    at com.netflix.hystrix.contrib.javanica.command.GenericCommand$1.execute(GenericCommand.java:48)
    at com.netflix.hystrix.contrib.javanica.command.AbstractHystrixCommand.process(AbstractHystrixCommand.java:145)
    at com.netflix.hystrix.contrib.javanica.command.GenericCommand.run(GenericCommand.java:45)
    at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:302)
    at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:298)
    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:46)
    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.Observable.unsafeSubscribe(Observable.java:10151)
    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51)
    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)
    at rx.Observable.unsafeSubscribe(Observable.java:10151)
    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.Observable.unsafeSubscribe(Observable.java:10151)
    at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94)
    at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:56)
    at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:47)
    at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction.call(HystrixContexSchedulerAction.java:69)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: interrupt
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: interrupt
    at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:200)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
    ... 45 more
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: interrupt
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
    at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:82)
    at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:68)
    at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:338)
    at org.apache.ibatis.executor.ReuseExecutor.prepareStatement(ReuseExecutor.java:88)
    at org.apache.ibatis.executor.ReuseExecutor.doUpdate(ReuseExecutor.java:51)
    at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
    at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)
    ... 51 more
Caused by: java.sql.SQLException: interrupt
    at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1405)
    at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1248)
    at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4619)
    at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:680)
    at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4615)
    at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1226)
    at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1218)
    at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:90)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
    ... 59 more
Caused by: java.lang.InterruptedException
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(AbstractQueuedSynchronizer.java:1220)
    at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(ReentrantLock.java:335)
    at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1402)
    ... 68 more

fastdfs文件上传报错Save file error:java.io.IOException: java.io.IOException: java.io.IOException: recv package size -1 != 10

fastdfs文件上传报错Save file error:java.io.IOException: java.io.IOException: java.io.IOException: recv package size -1 != 10

这是什么原因?文件好像也能上传

今天的关于java.io.StreamCorruptedException:读取多个对象时格式错误objectinputstream读取多个对象的分享已经结束,谢谢您的关注,如果想了解更多关于Android-Studio-2.3错误:java.util.concurrent.ExecutionException:java.lang.RuntimeException:AAPT进程尚未准备好接收命令、C3P0:java.lang.InterruptedException: sleep interrupted、Connection; nested exception is java.sql.SQLException: interrupt,这是什么问题啊?、fastdfs文件上传报错Save file error:java.io.IOException: java.io.IOException: java.io.IOException: recv package size -1 != 10的相关知识,请在本站进行查询。

本文标签: