精华内容
下载资源
问答
  • java将对象写入txt文件
    千次阅读
    2021-03-06 03:50:20

    Java对象序列化

    首先介绍一下对象序列化的目标:对象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象。

    一、序列化的含义和意义:

    序列化机制使得对象可以脱离程序的运行而独立存在。

    对象的序列化指将一个Java对象写入IO流中,与此对应的反是,对象的反序列化则指从IO流中恢复该Java对象。

    如果需要需要让某个对象支持序列化机制,则必须让它的类是可序列化的(serializable)。为了让某个类是可序列化的,该类必须实现如下两个接口之一:

    Serializable

    Externalizable

    Serializable接口是一个标记接口,实现该接口无需实现任何方法,它只是表明该类的实例是可序列化的。

    所有需要保存到磁盘里的对象的类都应该可序列化。

    二、使用对象流实现序列化(使用Serializable接口)

    使用 Serializable 来实现序列化非常简单,主要让目标类实现 Serializable 标记接口即可,无须实现任何方法。

    一旦某个类实现了 Serializable 接口,该类的对象就是可序列化的,程序可以通过如下两个步骤来序列化该对象。

    1.创建一个 ObjectOutputStream,这个输出流是一个处理流,所以必须建立在其他节点流的基础上。如下代码所示。

    //创建 ObjectOutputStream 输出流

    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("file.txt));

    2.调用 ObjectOutputStream 对象的writeObject()方法输出可序列

    更多相关内容
  • 下面小编就为大家带来一篇Java读取txt文件写入txt文件的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 下面小编就为大家带来一篇Java将对象保存到文件中/从文件中读取对象的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 下面小编就为大家带来一篇Java将对象写入文件读出_序列化与反序列化的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • java可以序列化以后的对象存入文件中,比如HashMap, 然后还能读出来。对于一些做高速缓存的项目非常有用,比如你从数据库读取了一个分类,希望以后就不要从数据库读取了,从文件读取。那么这种办法非常有用。如果...

    java可以将序列化以后的对象存入文件中,比如HashMap, 然后还能读出来。对于一些做高速缓存的项目非常有用,比如你从数据库读取了一个分类,希望以后就不要从数据库读取了,从文件读取。那么这种办法非常有用。

    如果一个对象没有被序列化,那么无法存入,所以对象必须是序列化的

    package com.javaer.examples.file;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.ObjectInputStream;

    import java.io.ObjectOutputStream;

    import java.util.HashMap;

    public class StoreFileObject {

    //java serialize a object to file

    public static void writeObject(String path,Object map) throws IOException{

    File f=new File(path);

    FileOutputStream out=new FileOutputStream(f);

    ObjectOutputStream objwrite=new ObjectOutputStream(out);

    objwrite.writeObject(map);

    objwrite.flush();

    objwrite.close();

    }

    // read the object from the file

    public static Object readObject(String path) throws IOException, ClassNotFoundException{

    FileInputStream in=new FileInputStream(path);

    ObjectInputStream objread=new ObjectInputStream(in);

    Object map=objread.readObject();

    objread.close();

    return map;

    }

    /**

    * @param args

    */

    public static void main(String[] args) {

    HashMap h = new HashMap();

    h.put(‘‘name‘‘, ‘‘walter‘‘);

    try {

    StoreFileObject.writeObject(‘‘/my.db‘‘, h);

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    首发于

    http://java-er.com -

    http://java-er.com/blog/java-save-object/

    展开全文
  • import java.io.*;class Person implements Serializable {private static final long serialVersionUID = 1L;private String name;private int age;public Person() {}public Person(String name, int age) {this.n...

    import java.io.*;

    class Person implements Serializable {

    private static final long serialVersionUID = 1L;

    private String name;

    private int age;

    public Person() {

    }

    public Person(String name, int age) {

    this.name = name;

    this.age = age;

    }

    public String toString() {

    return "姓名:" + name + ";年龄:" + age;

    }

    }

    public class Text{

    static int geshu = 0;

    public static void main(String[] args) throws Exception

    {

    String path = "d:" + File.separator + "test.txt";

    File f = new File(path);

    Person p1 = new Person("张三", 23);

    write(f, p1);

    read(f, geshu);

    Person p2 = new Person("李四", 32);

    write(f, p2);

    read(f, geshu);

    }

    public static void write(File f, Object p) throws Exception

    {

    OutputStream out = new FileOutputStream(f, true);

    //true表示追加

    MyObjectOutputStream oos = MyObjectOutputStream.newInstance(f,

    out);

    oos.writeObject(p);

    geshu++;

    oos.close();

    System.out.println("-----Oject写入成功....");

    }

    public static void read(File f, int geshu) throws Exception

    {

    FileInputStream in = new FileInputStream(f);

    ObjectInputStream ois = new ObjectInputStream(in);

    for (int i = 0; i < geshu; i++) {

    System.out.println((Person) ois.readObject());

    }

    ois.close();

    }

    }

    new一个ObjectOutputStream的时候,这个ObjectOutputStream的构造方法就会调用writeStreamHeader()方法,

    这样流中就会被写入了一些信息,这些信息也会写入到我们的文件中。在第一次写入文件时,这些头部信息是需要的。因为ObjectInputStream读的时候会帮我们过滤掉。但是当我们追加写入一个文件时,这些头部信息也会写入文件中,读取的时候只会把文件第一次出现的头部信息过滤掉,并不会把文件中间的头部信息也过滤掉,所以追加多个对象后,读取对象时会出现问题。

    怎么解决呢?

    一、不用追加,可以在每次写入的时候把文件中所有对象读出来,再将这些对象和要写入的对象一起重新写入。

    二、如果不是第一次写入文件,在写入时去掉头部信息,怎么去掉呢?头部信息是在writeStreamHeader();方法中写入的,所以我们可以通过继承ObjectOutputStream来覆盖这个方法,如果不是第一次写入文件,这个方法什么也不做。

    class MyObjectOutputStream extends

    ObjectOutputStream {

    private static File f;

    writeStreamHeader()方法是在ObjectOutputStream的构造方法里调用的

    由于覆盖后的writeStreamHeader()方法用到了f。如果直接用构造方法创建

    一个MyObjectOutputStream对象,那么writeStreamHeader()中的f是空指针

    因为f还没有初始化。所以这里采用单态模式

    (将构造方法定义为私有的,然后通过方法获取对象,可以保证某个类只能存在一个对象示例)

    public static MyObjectOutputStream newInstance(File file,

    OutputStream out)

    throws IOException {

    f = file;

    return new MyObjectOutputStream(out);

    }//通过方法初始化f,获取对象。

    private MyObjectOutputStream(OutputStream out) throws IOException

    {

    super(out);//会调用重写的writeStreamHeader()方法

    }//不能在类的外部使用new,但在类的内部可以

    @Override

    protected void writeStreamHeader() throws IOException {

    if (!f.exists() || (f.exists() &&

    f.length() == 0)) {

    super.writeStreamHeader();

    } else {

    super.reset();

    }

    }

    }

    展开全文
  • 它工作正常,但问题是已添加的对象没有保存在.txt文件中,只保存在临时对象上.所以我需要它们添加到文本文件中,以便我以后可以显示和删除它们.这是代码的一部分.* /public class testing {public static void main...

    / **我有一些方法,如添加,显示,排序,删除和退出实现ArrayList函数.它工作正常,但问题是已添加的对象没有保存在.txt文件中,只保存在临时对象上.所以我需要将它们添加到文本文件中,以便我以后可以显示和删除它们.这是代码的一部分.

    * /

    public class testing {

    public static void main(String[] args) {

    String Command;

    int index = 0;

    Scanner input = new Scanner(System.in);

    ArrayList MenuArray = new ArrayList();

    boolean out = false;

    while (!out) {

    System.out.print("Enter your Command: ");

    Command = input.nextLine();

    // method ADD for adding object

    if (Command.startsWith("ADD ") || Command.startsWith("add ")) {

    MenuArray.add(Command.substring(4).toLowerCase());

    // indexing the object

    index++;

    /** i stuck here,it won't written into input.txt

    BufferedWriter writer = new BufferedWriter(new FileWriter(

    "input.txt"));

    try {

    for (String save : MenuArray) {

    int i = 0;

    writer.write(++i + ". " + save.toString());

    writer.write("\n");

    }

    } finally {

    writer.close();

    }*/

    } else if (Command.startsWith("EXIT") || Comand.startsWith("exit")) {

    out = true;

    }

    }

    }

    }

    展开全文
  • 如何将java中map数据写入txt文件

    千次阅读 2021-02-26 21:06:18
    用户提问例如static{//初始化默认用户user.setUsername("admin");...try {FileWriter fw =newFileWriter("D:\\PBNovelplatform\\UserInformation.txt");Map users = new HashMap();users.put(user.getUserna...
  • 如何用Java将对象写入文件

    千次阅读 2020-05-20 20:02:04
    为此,您必须实现Serializable接口,并使用ObjectOutputStream将对象写入文件。 FileOutputStream fout = new FileOutputStream("c:\\temp\\address.ser"); ObjectOutputStream oos = new ObjectOutputStre...
  • java将特定内容写入txt文件

    千次阅读 2021-08-31 18:24:30
    /** * 从内存中写出数据到硬盘文件 * 输出的file可以不存在,不会报异常 * file对应的硬盘中的文件如果不存在,在输出... 提供File类的对象,指明写出到的文件 File file = new File("new.txt"); // 2. 提供FileW
  • java将数据写入txt文件

    千次阅读 2020-01-04 21:15:15
    通过 createNewFile() 来创建空文件 FileWriter 字符输出流 public FileWriter(String fileName) throws IOException BufferedWriter :字符缓冲输出流 BufferedWriter(Writer out) : 默认缓冲区大小构造字符缓冲...
  • 转自:每日一课 | 如何将Java对象读取和写入文件Java对象序列化是Java库堆栈提供的一种API,用于序列化Java对象。序列化是对象转换为可写字节流的过程。一旦转换为字节流,就可以这些对象写入文件。反向过程称为...
  • 2014-02-24 06:30:02阅读( 772 )下面是要写入类Person的定义,此类需要实现Serializable接口import java.io.Serializable;/**** @author outofmemory.cn*/public class Person implements Serializable {private ...
  • 主要介绍了java 对象输入输出流读写文件的操作实例的相关资料,这里使用实现Serializable接口,需要的朋友可以参考下
  • Java读取和写入txt文件

    2021-03-15 01:30:27
    1 问题描述对于java的读取和写入txt一直心存疑惑,随着知识的积累,又重新进行学习,对java文件读写理解更加深刻,在这里自己的小小经验总结分享给大家。下面是大家了解java流的一个基本框架。 2 问题分析在java...
  • importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.In...
  • java读写txt文件的方法

    2021-03-22 20:43:25
    java读写txt文件的方法发布时间:2020-06-26 15:54:02来源:亿速云阅读:111作者:Leah本篇文章为大家展示了java读写txt文件的方法,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能...
  • java代码 如何向TXT文件写入内容?

    千次阅读 2021-02-25 18:22:49
    展开全部向txt文件写入内容基本思路就是获得一个62616964757a686964616fe59b9ee7ad9431333337613134file对象,新建一个txt文件,打开I/O操作流,使用写入方法进行读写内容,示例如下:packagecommon;importjava.io.*...
  • 【首先】:创建一个File对象。 File writename = new File("C:\\Users\\maxm\\Desktop\\output.txt"); writename.createNewFile(); // 创建新文件 【其次】:创建一个FileWriter 和BufferedWriter对象。 ...
  • java 读取和写入csv文件 (自动提取和转换成对象数据)-附件资源
  • Java读取、写入txt文件

    2020-05-13 11:28:40
    JAVA读取、写入txt文件 1、读取 public String GetLogString(String logpath){ System.out.println("----------------开始读取日志----------------"); File logfile = new File(logpath+"\\log.txt"); ...
  • 想要我从JSON解析的一些信息保存到纯文本中,我也希望每次运行程序时都不会覆盖这些信息。 它假设作为一个简单的错误记录系统工作。到目前为止我试过这个:FileWriter fileWriter = null;File file = new File("/...
  • java的IO包当中提供了,向文件写入文件和读取文件的方法。好吧,来看下具体怎么回事吧。我们先写一个像文件当中写单个对象的方法吧。public void writeObject() {try {HashMap<String,String> map = new ...
  • 因此,我知道如何简单的Java对象写入CSV文件,但是我遇到了具有更复杂属性的Java对象的麻烦。以下是我目前拥有的一个示例:人.javapublic class Person {@CsvBindByName(column="name")private String name;@...
  • 1、创建TXT文件按照正常的逻辑写就好先定义一个文件给定一个路径——>判断这个路径上这个文件存不存在——>若不存在则建立,try/catch根据程序提示自动生成就好2、读取TXT文件思路1:获得一个文件路径以这个...
  • 展开全部写Java程序时经常碰到要读如txt写入txt文件的情况,但是由于要定义好多变量,经常记不住,每e69da5e6ba9062616964757a686964616f31333365643562次都要查,特此整理一下,简单易用,方便好懂![java]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 467,521
精华内容 187,008
关键字:

java将对象写入txt文件

友情链接: QR.rar