`
noble510520
  • 浏览: 56273 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Properties+重温Map+本地计数器

 
阅读更多

昨天想写一个记账本,发现并不能把项目名称与内容关联起来,于是乎我想到了map,可是又不知道map储存到文件中又怎么读出来,幸好今天遇到了properties
Properties是Hashtable的子类,Hashtable实现Map接口
所以Properties其实是一个Map

Map(映射)

首先Map是一个接口,所以实例化找他的子类HashMap、LinkedHashMap和TreeMap
不同于List和Set的是,Map并不实现Collection,所以不能用Collections的方法

Map方法

构造函数

和以前一样
Map

添加

put(Key key,Value value):void
putAll(Map xxxx):void复制映射
相当与容器中的add()和addAll()
此时如果存在旧的键值对,并不是添加,而是覆盖

得到

get(Key key):Value 若该键不存在,则返回null,相当于Collection中的get(索引)
keySet():Set 返回Key的Set视图,因为key不可重复,所以返回不可重复的Set视图,而不是List
values():Collection 返回Value的Collection(实际是List)视图,因为Value可以重复,所以返回可以重复的List视图
entrySet():Set

判断

isEmpty():boolean
containsKey(Key key):boolean
containsValue(Value value):boolean

操作

clear():void 清空
remove(Key key):Value 返回被删除的值
size():int 返回键值的数量

hashCode():int 返回映射中各项哈希值之和
equals(Map another):boolean 比较两个引用是否相等
看到这里,我们发现在Map接口中重写了java.lang.Object中的equals(重写成各项哈希值之和)和hashCode()方法
使得equals是比较内容,而不是比较引用
又!是在Map中重写的,所以对Map下的所有子类之间都可以用equals去比较!


Properties(属性列表)

Properties的方法

构造方法

Properties():
Properties(Properties default):
因为Properties中有一个字段Properties defaults,这是一个默认的属性列表,包含未找到的默认值,所以第二的构造方法,就把default作为默认属性列表

添加

因为Properties必须添加

得到

getProperty(String key):String 得到值
stringPropertySet():Set与Set转换

写出去

store(OutputStream out,String comments):void 用字节流输出
store(Writer out,String comments):void 用字符流输出
参数comments是注释,会出现的文件的首行,格式#comments
不过注释千万不要写中文,因为好像是编码的原因,中文会出现乱码
list(PrintStream out):void
list(PrintWriter out):void
将列表属性输出到指定的输出流可以用来打印
目前我还没知道有什么作用
注意:上面两个方法都不输出其默认属性列表
写入各个项后,自动刷新输出流。此方法返回后,输出流仍保持打开状态。

读进来

load(InputStream in):void
load(Reader):void
和写进来的方法一样,此方法返回后,指定的流仍保持打开状态。
对应相应输出时候的格式(字节or字符)

用Properties的好处

输出到文本的时候带有时间(相当于打印date对象),且自动换行
输入的时候自动识别键和值
因为值的数据类型是String,所以如果想对int进行操作就有点麻烦,这里有一个方法:
java.lang.Integer.parseInt(String) 这是一个静态的方法,将十进制的字符串转换为数字

用Properties做一个登录计数器

import java.util.*;
import java.io.*;
public class LoginAccounter{
    public static void main(String[] args)throws IOException{
        File accounter=new File("accounter.properties");
        FileOutputStream out=new FileOutputStream(accounter,accounter.isFile());
        FileInputStream in=new FileInputStream(accounter);
        Properties account=new Properties();
        account.load(in);
        int time=Integer.parseInt(account.getProperty("Time","0"));
        if((++time)<3){
        System.out.println("少侠,风尘仆仆,梦幻西游一直在您左右,我们为您准备了在线大礼包,请听我道来\r\n您已经来到梦幻西游"+time+"次了,再登录"+(3-time)+"次,您就可以获得**在线大礼包**!!!");}
        else{System.out.println("少侠,您已经满足领取在线大礼包(登录10次)的条件了,请少侠移步至梦幻精灵处领取!!感谢您支持梦幻西游!");}
        account.setProperty("Time",(time)+"");
        account.store(out,"LoginAccounter");
    }}
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    读取properties返回map并写入文件

    本篇文章将详细讲解如何读取.properties文件,将其内容转化为Map对象,以及如何将这个Map对象写回到新的文件中。 首先,我们需要了解什么是.properties文件。这是一种文本格式的文件,用于存储键值对,其中每个键和...

    读取properties文件返回map

    本篇将详细讲解如何在Java中读取`properties`文件并将其内容转换为`Map`对象。 1. **properties文件结构** `properties`文件的结构非常简单,每行代表一个键值对,键和值之间用等号`=`或冒号`:`分隔。例如: ``` ...

    spring+sendmail+模板+properties+vm

    而“spring+sendmail+模板+properties+vm”这一主题则涉及到Spring框架中关于电子邮件发送以及使用模板和配置文件的部分。以下是这些知识点的详细说明: 1. **Spring Sendmail**: Spring框架提供了`JavaMailSender`...

    c3p0+xml+jdbc.properties+DBUtils+mysql-connector

    标题 "c3p0+xml+jdbc.properties+DBUtils+mysql-connector" 提示我们讨论的是一个基于Java的数据库连接管理方案,它涉及到几个关键组件:C3P0连接池、XML配置、`jdbc.properties`配置文件以及MySQL的JDBC驱动。...

    xml+properties+生产消费

    标题中的“xml+properties+生产消费”涉及到两个主要的技术领域:XML配置文件和Java中的生产者消费者模式。在Java开发中,XML常用于存储和传递结构化数据,而.properties文件则用于存储应用的配置信息。生产者消费者...

    jk2.properties+workers2.properties

    在这个过程中,`jk2.properties`和`workers2.properties`文件起着至关重要的作用。这两份配置文件是用于实现Apache与Tomcat之间的通信,也就是我们常说的Apache作为前端服务器,Tomcat作为后端应用服务器的“负载...

    javatxt+Properties+xml文件读写

    这里主要关注的是对`.txt`、`.properties`和`.xml`这三种类型的文件进行操作。`.txt`文件是最常见的文本文件,`.properties`文件用于存储配置信息,而`.xml`文件则是一种结构化的数据存储格式,常用于数据交换和配置...

    antisamy-esapi.xml+ESAPI.properties+validation.properties

    这个压缩包包含了三个关键文件:“antisamy-esapi.xml”,“ESAPI.properties”以及“validation.properties”。这些文件是ESAPI框架的核心配置文件,下面将详细解释它们的作用和重要性。 首先,“antisamy-esapi....

    Some properties of the Logistic map over the finite field and its application

    To overcome these drawbacks, in this paper, we extend the Logistic map-3 to the finite field Z 3 n , and give theoretical analysis about some period properties of the Logistic map-3 over Z 3 n ....

    gradle中的properties文件详解

    本文侧重于了解自定义properties文件,以及properties中的数据格式,在gradle中如何使用等知识点。 一、概述 在Android Studio 创建一个项目的时候,rootProject下面会生成gradle.properties和local.properties文件...

    zk+dubbo+spring本地工程

    【标题】"zk+dubbo+spring本地工程"指的是一个整合了Zookeeper、Dubbo和Spring框架的本地开发环境。这个项目可能是一个分布式服务治理的示例或者开发模板,旨在帮助开发者快速搭建具备服务注册与发现、远程调用等...

    用properties文件实现国际化与本地化的一个小例子

    汉字转换为ascii码用命令:native2ascii.exe 本程序可以正常运行~~~ http://blog.csdn.net/facepp/archive/2008/05/16/2451150.aspx

    log4j.properties

    log4j.properties+log4j日志文件

    Spring 读取properties文件key+value方式.rar

    Map, Object&gt; props = new HashMap(); props.put("database.url", "newUrl"); sources.addLast(new MapPropertySource("customProps", props)); } ``` 以上代码展示了如何动态添加属性源。 **5. 使用`@...

    JAVA 解决Properties文件保存中文乱码

    在Java编程中,Properties文件是用于存储配置信息的文本文件,通常包含键值对,其中键和值可以是任意字符串。然而,当这些文件中包含中文字符时,如果不正确地处理编码,可能会出现中文乱码的问题。本文将深入探讨...

    PropertiesEditor

    1. **下载压缩包**:首先,你需要从可靠的源下载PropertiesEditor 4.0.1的压缩包,文件名为"Properties+Editor+for+Eclipse4.0.1"。 2. **解压文件**:将压缩包解压到一个本地目录,确保你能够访问其中的安装文件。 ...

    dreamweaver中内嵌jsp做的网站计数器源代码

    压缩包中的`counters`文件可能包含了实际的JSP源代码文件,如`counter.jsp`,以及可能的辅助文件,如数据库连接配置文件(`.properties`)或数据库脚本文件。开发者需要解压并研究这些文件以理解具体实现细节。 7....

    js读取properties文件

    在JavaScript(JS)环境中,读取.properties文件通常用于处理配置数据或者本地化文本。这些文件在Java开发中广泛使用,但JavaScript同样可以借助一些库或技术来读取它们。下面我们将详细探讨如何在JavaScript中实现...

    properties文件编辑插件

    `properties`文件是一种用于存储键值对的数据格式,通常用于应用程序的配置、国际化与本地化等场景。Eclipse作为一款强大的Java集成开发环境,虽然内置了一些基本的编辑功能,但为了提升效率和便捷性,开发人员往往...

    Python实现读取Properties配置文件的方法

    在Python编程中,有时我们需要处理Java开发中常用的`.properties`配置文件。虽然Python标准库并未直接提供处理此类文件的模块,但我们可以自定义一个类来实现这个功能。本篇文章将详细探讨如何通过Python来读取并...

Global site tag (gtag.js) - Google Analytics