ois = new ObjectInputStream(is);时抛出异常java.io.EOFException
不知道怎么解决? public Object getObject(String key) {
ShardedJedis shardedJedis = null;
Object obj = null;
ByteArrayInputStream is = null;
ObjectInputStream ois = null;
try {
shardedJedis = shardedJedisPool.getResource();
byte[] ret = shardedJedis.get(key.getBytes("UTF-8"));
if(ret != null && ret.length >0){
is = new ByteArrayInputStream(ret);
ois = new ObjectInputStream(is);
obj = ois.readObject();
}
} catch (Exception e) {
log.error(e.getMessage() + "-->get:" + e.getCause());
log.error("getObject:"+key);
//e.printStackTrace();
} finally {
try {
if(ois!=null){
ois.close();
}
if(is!=null){
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
shardedJedisPool.returnResource(shardedJedis);
}
return obj;
}
不知道怎么解决? public Object getObject(String key) {
ShardedJedis shardedJedis = null;
Object obj = null;
ByteArrayInputStream is = null;
ObjectInputStream ois = null;
try {
shardedJedis = shardedJedisPool.getResource();
byte[] ret = shardedJedis.get(key.getBytes("UTF-8"));
if(ret != null && ret.length >0){
is = new ByteArrayInputStream(ret);
ois = new ObjectInputStream(is);
obj = ois.readObject();
}
} catch (Exception e) {
log.error(e.getMessage() + "-->get:" + e.getCause());
log.error("getObject:"+key);
//e.printStackTrace();
} finally {
try {
if(ois!=null){
ois.close();
}
if(is!=null){
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
shardedJedisPool.returnResource(shardedJedis);
}
return obj;
}
解决方案 »
- 生产者与消费者堆栈问题
- 怎么 :Cannot create PoolableConnectionFactory
- String b=new String("ABC")定义了几个String object?(在线等)
- 求有关applet的电子书籍
- 谁能给我关于jxl的文档
- 为什么查询结果必须按顺序获得结果???????
- 请教SNMP实现路由器计费信息采集
- String 不能付给 Datetime类型?
- 啊,晕,怎么会这样啊,想知道这过来一看究竟啊
- 验证密码不允许有连续三位重复的正则表达式,求解析。
- at java.io.DataInputStream.readUTF(Unknown Source),为什么总是报异常?
- 一个JAVA问题
作为一个linuxer一看到EOF就很敏感因为我们经常<<EOF的。
EOF是个文件结束符。
ois = new ObjectInputStream(is);时抛出异常java.io.EOFException
看样子你是在读序列化对象了!!!
应该是你序列化之后的对象没有成功写入文件吧
还有,虽说java夸平台但windows的EOF和linux的是不一样的....经常用vim打开windows的文件就看到乱七八糟的东西。
EOF这东西跟计算机的发展史有很大关系的,
你只在度对象,如果要弄清楚的话,你最好把你怎么写入对象到文件的代码也发上来看看...
public String setObject(String key, Object value) {
String ret = null;
if (value != null) {
ShardedJedis shardedJedis = null;
ByteArrayOutputStream outputStream = null;
ObjectOutputStream objectOutputStream = null;
try {
outputStream = new ByteArrayOutputStream();
objectOutputStream = new ObjectOutputStream(outputStream);
objectOutputStream.writeObject(value);
shardedJedis = shardedJedisPool.getResource();
ret = shardedJedis.set(key.getBytes("UTF-8"),
outputStream.toByteArray());
} catch (Exception e) {
log.error(e.getMessage() + "-->" + e.getCause());
log.error("setObject:"+key);
e.printStackTrace();
} finally {
try {
objectOutputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
shardedJedisPool.returnResource(shardedJedis);
}
}
return ret;
}