Java数据存储方法

use*_*390 2 java

我目前正在编写一个客户端 - 服务器应用程序,以允许客户端从服务器请求数据.我正在考虑完全用本机java编写这个,我正在使用文本和属性文件来完成我的大部分存储.

但是,我试图找到一种存储以下内容的好方法:

ID    Language from    Language to    Cost/100w    Comment
7101    English    Mandarin    $5.00    Outsource
Run Code Online (Sandbox Code Playgroud)

现在你可能在想,为什么他不只是使用arraylist,或只是将数据存储在另一个文本文件中?我已经考虑了这些选项,我看到每个选项都出现了挫折.

据我所知,有一个arraylist我不能存储整数,我想用以下命令查询数据:

What is the cost of <ID> translation of <integer> words?
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我将要求将成本存储为整数,因此我可以将其用于求和.

对于文本文件,我只知道如何将数据存储在一行中,例如:

7101 English Mandarin $5.00 Outsource
7102 Greek Russian $12.00 -
etc. etc. etc. etc. etc
Run Code Online (Sandbox Code Playgroud)

所以我不知道如何查询数据.

再一次,我不想最终将它存储在MySQL中并且必须使用JDBC驱动程序,我希望整个应用程序在本机java中运行.

小智 5

您还可以使用XML文件正确构建数据.在查询数据时,您可以使用XPath.

XML将为您提供允许多种数据格式的机会,包括数字和所有数据格式.

例如:

<?xml version="1.0" encoding="UTF-8"?>
<data>
    <row id="7101">
        <language-from>English</language-from>
        <language-to>Mandarin</language-to>
        <cost>5.00</cost>
        <comment><![CDATA[Some comment]]></comment>
    </row>
</data>
Run Code Online (Sandbox Code Playgroud)

使用XPath查询数据:单词翻译的成本是多少?

/data/row[@id=7101]/cost/number()
Run Code Online (Sandbox Code Playgroud)

然后使用结果除以100为单词的价格.

操作XML应该是一个带有JDOM2等库的公园.