对象读出

qq_37171619 2017-06-15 09:52:51
import java.io.*;

public class File{
public void Writer(Student stu, String path){
try{
OutputStream s = new FileOutputStream(path);
ObjectOutputStream w = new ObjectOutputStream(s);
w.writeObject(stu);
w.close();
}catch(Exception e){
e.printStackTrace();
}
}

public void Reader(String path){
try{
InputStream s = new FileInputStream(path);
ObjectInputStream w = new ObjectInputStream(s);
w.readObject();
w.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
import java.io.Serializable;

public class Student implements Serializable{
private int id;
private String name;
private float score;

public Student(){

}

public Student(int id, String name, float score) {
super();
this.id = id;
this.name = name;
this.score = score;
}

}
public class MainClass {
public static void main(String args[]){
Student s[] = new Student[10];
s[0] = new Student(24, "df", 54f);
File f = new File();
f.Writer(s[0], "G:\\TXAcc\\System\\data");
f.Reader("G:\\TXAcc\\System\\data");
}
}
为什么读的不对。
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluetata 2017-06-15
  • 打赏
  • 举报
回复
帮你改了一下
package com.ibm.dietime1943.mars;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;

public class ObjectReadS1 {
    public static void main(String args[]) {
        // Student s[] = n[10];
        // s[0] = new Student(24, "df", 54f);
        Student s = new Student();
        s.setId(1);
        s.setName("Mr.Li");
        s.setScore(100);
        FileTemp f = new FileTemp();
        f.Writers(s, "G:\\TXAcc\\System\\data.txt");
        f.Readers("G:\\TXAcc\\System\\data.txt");
    }

    static class FileTemp {
        public void Writers(Student stu, String path) {
            try {
                OutputStream s = new FileOutputStream(path);
                ObjectOutputStream w = new ObjectOutputStream(s);
                w.writeObject(stu);
                w.flush();
                w.close();
                w.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        public void Readers(String path) {
            try {
                InputStream s = new FileInputStream(path);
                ObjectInputStream w = new ObjectInputStream(s);
                w.readObject();
                w.close();
                s.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    static class Student implements Serializable {
        
        
        private int id;
        private String name;
        private float score;

        public Student() {

        }
        
        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }
        
        
        public String getName() {
            return name;
        }
        
        public void setName(String name) {
            this.name = name;
        }
        
        public float getScore() {
            return score;
        }
        
        public void setScore(float score) {
            this.score = score;
        }
        
        
//        public Student(int id, String name, float score) {
//            super();
//            this.id = id;
//            this.name = name;
//            this.score = score;
//        }

    }
}
110成成 2017-06-15
  • 打赏
  • 举报
回复
首先建议你 f.Writer(s[0], "G:\\TXAcc\\System\\data"); f.Reader("G:\\TXAcc\\System\\data"); 改成 f.Writer(s[0], "G:\\TXAcc\\System\\data.txt"); f.Reader("G:\\TXAcc\\System\\data.txt"); 第二 建议你在File Reader 中加打印信息,另在Student中生成get方法,方便打印 InputStream s = new FileInputStream(path); ObjectInputStream w = new ObjectInputStream(s); Student st1 = (Student) w.readObject(); System.out.println("===asasas===" + st1.getName()); 第三:建议Writer改成这样 OutputStream s = new FileOutputStream(path); ObjectOutputStream w = new ObjectOutputStream(s); w.writeObject(stu); w.flush(); w.close(); s.close(); 文件读写最后记得关闭,这样比较安全合理
bluetata 2017-06-15
  • 打赏
  • 举报
回复
添加代码 在编辑窗口点击笑脸左侧的那个标记
qq_37171619 2017-06-15
  • 打赏
  • 举报
回复
引用 2 楼 dietime1943 的回复:
帮你改了一下
package com.ibm.dietime1943.mars;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;

public class ObjectReadS1 {
    public static void main(String args[]) {
        // Student s[] = n[10];
        // s[0] = new Student(24, "df", 54f);
        Student s = new Student();
        s.setId(1);
        s.setName("Mr.Li");
        s.setScore(100);
        FileTemp f = new FileTemp();
        f.Writers(s, "G:\\TXAcc\\System\\data.txt");
        f.Readers("G:\\TXAcc\\System\\data.txt");
    }

    static class FileTemp {
        public void Writers(Student stu, String path) {
            try {
                OutputStream s = new FileOutputStream(path);
                ObjectOutputStream w = new ObjectOutputStream(s);
                w.writeObject(stu);
                w.flush();
                w.close();
                w.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        public void Readers(String path) {
            try {
                InputStream s = new FileInputStream(path);
                ObjectInputStream w = new ObjectInputStream(s);
                w.readObject();
                w.close();
                s.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    static class Student implements Serializable {
        
        
        private int id;
        private String name;
        private float score;

        public Student() {

        }
        
        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }
        
        
        public String getName() {
            return name;
        }
        
        public void setName(String name) {
            this.name = name;
        }
        
        public float getScore() {
            return score;
        }
        
        public void setScore(float score) {
            this.score = score;
        }
        
        
//        public Student(int id, String name, float score) {
//            super();
//            this.id = id;
//            this.name = name;
//            this.score = score;
//        }

    }
}
你这格式怎么弄的啊?

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧