Properties

一.Properties集合

1.Properties集合的特点

  • Properties类介绍:Properties 类表示了一个持久的属性集。Properties
    可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
  • 特点
    • Hashtable的子类,map集合中的方法都可以用
    • 该集合没有泛型。键值都是字符串
    • 它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。
      有和流技术相结合的方法
  • 方法介绍
    load(InputStream inputStream)把指定流所对应的文件中的数据,读取出来,保存到Propertie集合中
    load(Reader reader)按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)
    store(OutputStream outputStream,String commonts)把集合中的数据,保存到指定的流所对应的文件中,参数commonts代表对描述信息
    stroe(Writer writer,String comments)以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符

2.Properties集合存储键值对

  • Properties集合存储键值对方法介绍
  • 集合对象Properties类,继承Hashtable,实现Map接口
  • 可以和IO对象结合使用,实现数据的持久存储
  • 使用Properties集合,存储键值对
  • setProperty等同与Map接口中的put
  • setProperty(String key, String value)
  • 通过键获取值, getProperty(String key)
  Properties pro=new Properties();
      pro.setProperty("1","黄");
      pro.setProperty("2","志");
      pro.setProperty("3","桃");
      //方法stringPropertyNames,将集合中的键存储到Set集合,类似于Map接口的方法keySet
      Set<String> set = pro.stringPropertyNames();
      for (String key : set) {
          System.out.println(pro.getProperty(key));
      }

3.Properties集合的方法load

  • Properties集合的方法load方法介绍
    • Properties集合特有方法 load
    • load(InputStream in)
    • load(Reader r)
    • 传递任意的字节或者字符输入流
    • 流对象读取文件中的键值对,保存到集合
  • 实例代码(读取jdbc.properties文件)
    在这里插入图片描述
        Properties p=new Properties();
        //使用字节文件操作流
        InputStream  is=new FileInputStream("D:\\hzt\\mess\\properties\\src\\jdbc.properties");//绝对地址
        //使用字节缓冲缓冲流
     //   InputStream is=new BufferedInputStream(new FileInputStream("src/jdbc.properties"));//相对地址
       p.load(is);
        System.out.println(p.getProperty("jdbc.username"));
        p.list(System.out);

通过类加载器获取文件

      Properties p=new Properties();
    InputStream is = GetProperties.class.getClassLoader().getResourceAsStream("jdbc.properties");  //GetProperties为当前类名,静态方法中不能使用this
       p.load(is);
        System.out.println(p.getProperty("jdbc.username"));
        p.list(System.out);

4.Properties集合的方法store

  • Properties集合的方法store介绍
    • Properties集合的特有方法store
    • store(OutputStream out)
    • store(Writer w)
    • 接收所有的字节或者字符的输出流,将集合中的键值对,写回文件中保存
  • 实例代码
    1. 普通写入,中文时乱码
	 Properties pro=new Properties();
        InputStream is = Store.class.getClassLoader().getResourceAsStream("jdbc.properties");
        pro.load(is);
        pro.setProperty("name","黄志桃");
        pro.setProperty("sex","男");
        OutputStream out=new FileOutputStream("src/jdbc.properties");
        pro.store(out,"填充数据");
        out.close();

在这里插入图片描述
2.处理乱码
加以下代码即可

OutputStreamWriter osw=new OutputStreamWriter(out,"UTF-8");

5 . 加载和导出到 xml 配置文件

将Properties 类中定义的属性,导出成 .xml 的形式.

Properties pro=new Properties();
        pro.setProperty("name","黄志桃");
        pro.setProperty("sex","男");
        OutputStream output=new FileOutputStream("src/jdbc.xml");
        //编码设置成utf-8的形式。
        pro.storeToXML(output,"填充到xml","utf-8");

在这里插入图片描述
导出XML 配置文件 loadFromXML

  Properties pro=new Properties();
      InputStream is = Store.class.getClassLoader().getResourceAsStream("jdbc.xml");
      pro.loadFromXML(is);
      pro.list(System.out);

在这里插入图片描述

注:this.class.getClassLoader().getResourceAsStream(url);是从编译后的文件中获取

### 关于ArcGIS License Server无法启动的解决方案 当遇到ArcGIS License Server无法启动的情况,可以从以下几个方面排查并解决问题: #### 1. **检查网络配置** 确保License Server所在的计算机能够被其他客户端正常访问。如果是在局域网环境中部署了ArcGIS Server Local,则需要确认该环境下的网络设置是否允许远程连接AO组件[^1]。 #### 2. **验证服务状态** 检查ArcGIS Server Object Manager (SOM) 的运行情况。通常情况下,在Host SOM机器上需将此服务更改为由本地系统账户登录,并重启相关服务来恢复其正常工作流程[^2]。 #### 3. **审查日志文件** 查看ArcGIS License Manager的日志记录,寻找任何可能指示错误原因的信息。这些日志可以帮助识别具体是什么阻止了许可服务器的成功初始化。 #### 4. **权限问题** 确认用于启动ArcGIS License Server的服务账号具有足够的权限执行所需操作。这包括但不限于读取/写入特定目录的权利以及与其他必要进程通信的能力。 #### 5. **软件版本兼容性** 保证所使用的ArcGIS产品及其依赖项之间存在良好的版本匹配度。不一致可能会导致意外行为完全失败激活license server的功能。 #### 示例代码片段:修改服务登录身份 以下是更改Windows服务登录凭据的一个简单PowerShell脚本例子: ```powershell $serviceName = "ArcGISServerObjectManager" $newUsername = ".\LocalSystemUser" # 替换为实际用户名 $newPassword = ConvertTo-SecureString "" -AsPlainText -Force Set-Service -Name $serviceName -StartupType Automatic New-ServiceCredential -ServiceName $serviceName -Account $newUsername -Password $newPassword Restart-Service -Name $serviceName ``` 上述脚本仅作为示范用途,请依据实际情况调整参数值后再实施。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值