美文网首页Java
Java IO流Properties存取

Java IO流Properties存取

作者: 一亩三分甜 | 来源:发表于2019-09-24 23:20 被阅读0次

你虚度的今天,正是昨天逝去的人无限向往的明天。

Properties存取

import java.util.Properties;
import java.util.Set;

public class PropertiesDemo {
    public static void main(String[] args) {
        setAndGet();
    }
    //设置和获取元素
    public static void setAndGet()
    {
        Properties prop = new Properties();
        prop.setProperty("zhangsan","30");
        prop.setProperty("lisi","39");
        System.out.println(prop);
        String value = prop.getProperty("lisi");
        prop.setProperty("lisi",89+"");
        System.out.println(value);
        Set<String> names = prop.stringPropertyNames();
        for (String s:names)
            System.out.println(s + ":" + prop.getProperty(s));
    }
}
//输出

{zhangsan=30, lisi=39}
39
zhangsan:30
lisi:89

如何将流中的数据存储到集合中。

想要将info.txt中键值数据存到集合中进行操作。

1.用一个流和info.txt文件关联。

2.读取一行数据,将该行数据用"="进行切割。

3.等号左边作为键,右边作为值。存入到Properties集合中即可。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;

public class PropertiesDemo {
    public static void main(String[] args) throws IOException
    {
        method_1();
    }
    public static void method_1() throws IOException
    {
        BufferedReader bufr = new BufferedReader(new FileReader("info.txt"));
        String line = null;
        Properties prop = new Properties();
        while ((line = bufr.readLine()) != null)
        {
            String[] arr = line.split("=");
            System.out.println(arr[0]+"......"+arr[1]);
            prop.setProperty(arr[0],arr[1]);
        }
        bufr.close();
        System.out.println(prop);
    }
}
//输出
zhangsan......30
lisi......57
wangwu......99
{zhangsan=30, lisi=57, wangwu=99}

import java.io.*;
import java.util.Properties;
import java.util.Set;

public class PropertiesDemo {
    public static void main(String[] args) throws IOException
    {
          loadDemo();
    }
    public static void loadDemo() throws IOException
    {
        Properties prop = new Properties();
        FileInputStream fis = new FileInputStream("info.txt");
        //将流中的数据加载进集合
        prop.load(fis);
        prop.setProperty("wangwu","39");
        FileOutputStream fos = new FileOutputStream("info.txt");
        prop.store(fos,"haha");
        System.out.println(prop);
        prop.list(System.out);
        fos.close();
        fis.close();
    }
}
//输出
{zhangsan=30, lisi=57, wangwu=39}
-- listing properties --
zhangsan=30
lisi=57
wangwu=39
Snip20190924_87.png

Properties是hashtable的子类。也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。是集合和IO技术相结合的集合容器。该对象的特点:可以用于键值对形式的配置文件。那么在加载数据时,需要数据有固定格式:键=值。

用于记录应用程序运行次数。如果使用次数已到,那么给出注册提示。很容易想到的是:计数器。可是该计数器定义在程序中,随着程序的运行而在内存中存在,并进行自增。可是随着该应用程序的退出,该计数器也在内存中消失了。下一次再启动该程序,又重新开始从0计数。这样不是我们想要的。程序即使结束,该计数器的值也存在。下次程序启动会先加载该计数器的值并加1后再重新存储起来。所以要建立一个配置文件。用于记录该软件的使用次数。
该配置文件使用键值对的形式。这样便于阅读数据,并操作数据。键值对数据是map集合。数据是以文件形式存储。使用io技术。那么map+io --> properties。配置文件可以实现应用程序数据的共享。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

public class RunCount {
    public static void main(String[] args) throws IOException
    {
        Properties prop = new Properties();
        File file = new File("count.ini");
        if (!file.exists())
            file.createNewFile();
        FileInputStream fis = new FileInputStream(file);
        prop.load(fis);
        int count = 0;
        String value = prop.getProperty("time");
        if (value!=null)
        {
            count = Integer.parseInt(value);
            if (count>=5)
            {
                System.out.println("您好,使用次数已到,拿钱!");
                return;
            }
        }
        count++;
        prop.setProperty("time",count+"");
        FileOutputStream fos = new FileOutputStream(file);
        prop.store(fos,"");
        fos.close();
        fis.close();
    }
}
//运行六次及大于六次输出
您好,使用次数已到,拿钱!

相关文章

  • Java IO流Properties存取

    你虚度的今天,正是昨天逝去的人无限向往的明天。 Properties存取 如何将流中的数据存储到集合中。 想要将i...

  • Java学习Day17

    今日学习内容总结 字符流的输入及输出 Properties IO流 字符流 字符输入流【Reader】 java....

  • Java-IO流-Properties

    引出Properties 将一个媒体文件切割成多个碎片 配置文件的建立和读取 Properties,它里面存储的键...

  • 2021-09-20 IO流(Properties存取)

  • Java IO中的其他流的使用

    本文主要介绍Java IO中的其他几种流: 标准输入、输出流 打印流 数据流 对象流 随机存取文件流 标准输入、输...

  • 2020-06-30【其它流】

    标准流 字节打印流 对象序列化流 Properties 特有方法 Properties和IO流结合的方法

  • Java之IO流详解

    title: Java之IO流详解tags: Java IO流categories: Java IO流 大多数应用...

  • IO流之 Properties

    概述 1.Properties 表示一个持久的Map集合2.Properties 可保存在流中,或从流中加载3.属...

  • IO(其他流)&Properties

    day22(IO(其他流)&Properties) 1_IO流(序列流)(了解) 1.什么是序列流序列流可以把多个...

  • 9.字节流、字符流

    主要内容 IO流 字节流 字符流 异常处理 Properties 第一章 IO概述 1.1 什么是IO 生活中,你...

网友评论

    本文标题:Java IO流Properties存取

    本文链接:https://www.haomeiwen.com/subject/bhzbuctx.html