如何在java里长期存储数据 不要数据库的那种

2024-12-29 10:20:22
推荐回答(5个)
回答1:

  长期存储数据,即把数据(如内存中的)保存到可永久保存的存储设备中(如硬盘、U盘),也就是人们常说的持久化。

  常用持久化的方案有数据库、XML文件和文件存储。

       数据库是按照数据结构来存储和管理数据的仓库,后文不再做详细介绍。

       XML是可扩展标记语言,最早是为了简化Internet的文档数据传输,它提供统一的语法格式来描述数据的结构,通常XML文件用于一些少量且无特殊类型要求的文本存储。示例代码使用W3C标准的接口生成XML:

import java.io.FileOutputStream;
import java.io.PrintWriter;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class $ {
    public static void main(String[] args) throws Exception {
        Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
        //创建根节点为students的XML文件
        Element students = document.createElement("students");
        document.appendChild(students);

        //在根节点下创建一个子节点学生
        Element student = document.createElement("student");
        students.appendChild(student);
        //创建节点学生姓名,值为张三
        Element name = document.createElement("name");
        name.appendChild(document.createTextNode("张三"));
        student.appendChild(name);
        //创建节点学生年龄,值为18
        Element age = document.createElement("age");
        age.appendChild(document.createTextNode("18"));
        student.appendChild(age);
        //创建节点学生编号,值为150101
        Element number = document.createElement("number");
        number.appendChild(document.createTextNode("150101"));
        student.appendChild(number);

        //在根节点下创建第二个子节点学生
        student = document.createElement("student");
        students.appendChild(student);
        //创建节点学生姓名,值为李四
        name = document.createElement("name");
        name.appendChild(document.createTextNode("李四"));
        student.appendChild(name);
        //创建节点学生年龄,值为20
        age = document.createElement("age");
        age.appendChild(document.createTextNode("20"));
        student.appendChild(age);
        //创建节点学生编号,值为150102
        number = document.createElement("number");
        number.appendChild(document.createTextNode("150102"));
        student.appendChild(number);
        
        //将XML文件保存到硬盘
        Transformer transformer = TransformerFactory.newInstance().newTransformer();
        transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        PrintWriter writer = new PrintWriter(new FileOutputStream("/home/test.xml"));
        transformer.transform(new DOMSource(document), new StreamResult(writer));
    }
}

       无论是数据库还是XML文件,它们都使用了能让数据快速方便进出的标准规范。其它文件如propeties、json,都可以使用类似XML的方式来打包数据,然后通过Java丰富的io流接口保存到磁盘中。

回答2:

用redis存,但是也是有时间限制,redis关了,也就没了,
第二个就是JVM存在的时间一样长了,但是这个灰常占用内存,在变量前面加上static,
第三种方法定义在接口里面
第四个方法。。。。

回答3:

可以用dom4‍‍j,生成对应xml文件来存储.就看用什么样的格式了

回答4:

把内容写到各种本地文件

需要用的时候,再从本地文件读取就可以了

回答5:

1、建立map文件 类似索引文件
2、hive hbase
3、保存txt.使用io读取数据,可以建立索引
4、readis 实现持久化