java 编程-java 对象输出流单独运行写对象对象会被写出来 但是也会报错 单独问我行读对像直接报错

问题描述

java 对象输出流单独运行写对象对象会被写出来 但是也会报错 单独问我行读对像直接报错

package com.vince;

import java.io.Serializable;

public class Cat implements Serializable {
private String name;
private int age;
private transient String color;
public Cat(){

}
public Cat(String name,int age){
    this.name=name;
    this.age=age;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}
@Override
public String toString() {
    return "Cat [name=" + name + ", age=" + age + "]";
}

}
这是这个Cat类
package com.vince;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;

public class ObjectStreamDemo {
public static void objectIn(){

        try {
            InputStream in = new FileInputStream("d:\object.abc");
            BufferedInputStream bs =new BufferedInputStream(in);
            ObjectInputStream ois = new ObjectInputStream(bs);
            Cat cat = (Cat) ois.readObject();
            System.out.println(cat);
            ois.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

}
public static void  objectOut(){
    Cat cat =new Cat("花花",3);

    try {
        OutputStream out =new FileOutputStream("f:\huahua.obj");
        ObjectOutputStream  oos=new ObjectOutputStream(out);
        oos.writeObject(cat);
        oos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}
public static void main(String[] args) {
    objectOut();
    objectIn();
}

}这是我写的对象输入输出流运行起来为什么会报错

解决方案

请把报错贴出来,方便分析问题。
从贴的代码看objectOut是写到f:huahua.obj,objectIn却是从d:object.abc来读,没有问题?
额外说一点,流不是贴的代码里那么close的,一般io.close()都是放到finally块里关闭,以防再流读取或者写入过程中抛出异常导致流不能正常关闭。

解决方案二:

文件名不同,是不是没有找到文件。报什么错。

解决方案三:

程序没有问题的,就是你的路径写错了,你输出的路径和输入的路径不一致的。

时间: 2024-11-02 17:18:07

java 编程-java 对象输出流单独运行写对象对象会被写出来 但是也会报错 单独问我行读对像直接报错的相关文章

Java编程——Java开发必看的编程思想

Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而且在大型项目开发中也是常用的知识,既有简单的概念理解题(比如is-a关系和has-a关系的区别),也有深入的涉及RTTI和JVM底层反编译知识.   1. Java中的多态性理解(注意与C++区分) Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意

java 编程-JAVA实现距离矢量算法

问题描述 JAVA实现距离矢量算法 1.编程实现右图所示简单网络拓扑的距离向量路由算法. 1.1 结点之间的连接关系固定: 1.2 链路开销可以由用户设定. 2.距离向量算法的实现方式: 2.1 可以利用多线程机制:每个结点一个 线程:每隔一段事件利用线程间通信 机制传递距离向量(DV):或是 2.2 每个结点利用单独的进程实现:每隔一 段时间利用Socket实现结点间的距离向量交换: 2.3 距离向量的计算与结点路由表的显示. 3.网络拓扑结构的描述(数据结构),拓扑结构利用文件存储. 4.结

详解Java编程中包package的内容与包对象的规范_java

包的内容包的内容应该仔细设计,使其只包含在功能上相关的类和接口.包中的类可以自由地访问该包中其他类的非私有成员,有些类甚至可能有足够的权限去访问其他类的内部细节,为了避免这样的类对类成员进行误操作,我们需要对类成员进行保护.任何没有被声明为private的成员都可以被同一个包中的其他所有类型访问,所以任何不相关的类之间的藕合程度都可能会比我们所期望的程度高. 包还为寻找有用的接口和类的程序员提供了逻辑分组的功能.由不相关的类组成的包使程序员很难分辨出哪些接口和类是有用的,而类的逻辑分组可以帮助程

java 编程-java语言求助,遇到个小问题

问题描述 java语言求助,遇到个小问题 始终提示非法字符,不知道哪里错了,各位精英帮帮忙.好像是引号的问题,大家帮忙看看. 解决方案 检查一下是不是半角与全角的原因 解决方案二: 找到提示出错的行,看看那一行都有什么符号.也可以复制贴出来才好分析. 解决方案三: 编写代码时把输入法设置成英文输入法,如果你的代码不多的话,删除重新写试试. 解决方案四: 一般编译器会把有语法错误的地方标注

java 编程-java问题~数字判断!~~~~~

问题描述 java问题-数字判断!----- 求教控制台随机输入一个数 判断是几位数? 把各位上的数字相加和是多少? 把数字倒序输出? 判断是否回文数? 解决方案 大致可以这样写 import java.io.IOException; import java.util.Scanner; /** * Created by obo on 16/3/13. */ public class Test { public static void main(String []args) throws IOEx

java 编程-Java 输出中这些符号什么意思

问题描述 Java 输出中这些符号什么意思 x+.+y+,还有头顶的双引号又是什么意思.怎么用的(有时候放在x前上方,有时候又不放) 解决方案 package Test0831; public class QTest_3 { public static void main(String[] args) { int a= 10; int b=1,c=2; String str = "helloWorld!"; System.out.println("a="+a); S

环信android demo,编译后运行,直接报错

问题描述 解决方案 1)首先看是不是环信的uidemo的2.2.0版本 如果不是,请下载最新的2.2.1版本:2)如果是2.2.1报这个问题,升级下buildtool 版本 最低是API19 ,也就是4.4.3)连不上google相关下载地址的话,可用http://www.androiddevtools.cn/  来下载.4)如果不显示build-tools,请更新下ADT.

Java编程思想重点笔记(Java开发必看)

Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而且在大型项目开发中也是常用的知识,既有简单的概念理解题(比如is-a关系和has-a关系的区别),也有深入的涉及RTTI和JVM底层反编译知识.   1. Java中的多态性理解(注意与C++区分) Java中除了static方法和final方法(private方法本质上属于final方法,因为不能被子类访问)之外,其它所有的方法都是动态绑定,这意

详解Java编程中对象的序列化_java

1. 什么是Java对象序列化 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长.但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象.Java对象序列化就能够帮助我们实现该功能. 使用Java对象序列化,在保存对象时,会把其状态保存为一组字节,在未来,再将这些字节组装成对象.必须注意地是,对象序列化保存的是对象的"状态",