java - 如何将对象写成人类可读的文本文件

标签 java serialization file-io

我想在文本文件中以人类可读的形式写入对象,该文件被保存为带有不需要字符的普通序列化对象。

如何重写程序以保存到人类可读的文本文件中?

import java.io.*;
class book implements Serializable 
{
    String name;
    String author;
    int nop;
    int price;
    int discount;

    void getDiscount()
    {
        int finalprice=price-((price/discount));
        System.out.println("Final price after discount="+finalprice);
    }

    public String toString()
    {
        return name+author+nop+price+discount;
    }
}

class fileio
{
    public static void main(String args[])
    {
        MainClass mainObject=new MainClass();
        mainObject.writeToFile();
        book javabook=new book();
        javabook.name="Java unleashed";
        javabook.author="someone";
        javabook.nop=1032;
        javabook.price=450;
        javabook.discount=10;
        javabook.getDiscount();
    }
        public void writeToFile()
        {
        try
        {
        File file=new File("JavaBook1.txt");
        FileWriter fw=new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw=new BufferedWriter(fw);
        bw.write(book.toString());
        bw.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

    }
}

最佳答案

您可以使用 JAXB 将其序列化为 XML或 XStream . XML 作为二进制数据更易于人类阅读,因此 XML 可能适合您。假设您还想反序列化您的数据,这是一个不错的选择。

关于java - 如何将对象写成人类可读的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16817210/

相关文章:

java - 使用 Files.delete() 删除文件时的奇怪行为

java - android-manifest 中的 android.stamp 是什么?

java - 将 2D 对象数组的列转换为 1D 字符串数组

c++ - 使用 QDataStream 将 QVariantMap 序列化为 QByteArray

php - 处理序列化数据与添加更多字段 - php - mysql

java - Jackson:没有找到类~~~~~~的序列化器,也没有发现创建 BeanSerializer 的属性

c# - 我可以检查某个文件是否存在于 URL 中吗?

python - 如何检查 slurm 作业是否是数组中最后一个 **RUNNING**?

java - 代码块未被触及

java - 我如何在 JRuby 中使用 Sesame 的 RDFXMLParser?