当前位置: 首页 > wzjs >正文

常州市武进区城乡建设局网站网络营销策划目标

常州市武进区城乡建设局网站,网络营销策划目标,网站开发总监,电子商务平台网站源码目录 一、字符流与字节流之间的桥梁 1. InputStreamReader 构造方法 例子: 2. OutputStreamWriter 构造方法 例子: 二、Properties Properties 类概述 例子: 连接数据库示例: 数据库配置文件(例子db.proper…

目录

一、字符流与字节流之间的桥梁

1. InputStreamReader

构造方法

例子:

2. OutputStreamWriter

构造方法

例子:

二、Properties

 Properties 类概述

例子:

连接数据库示例:

数据库配置文件(例子db.properties)

连接代码演示:

注释:

 Properties提供的常用方法

加载与保存

属性操作

其他

三、Random 类中的常用方法


前面介绍了这么多IO流字节流和字符流的定义和方法,现在有必要说一下这两者之间互相转化的问题,即“桥梁”。 

一、字符流与字节流之间的桥梁

1. InputStreamReader

InputStreamReader 是一个 从字节流到字符流的转换器。它将字节输入流(InputStream)转换为字符输入流(Reader),并允许指定字符编码。

构造方法

InputStreamReader(InputStream in); // 使用默认字符编码
InputStreamReader(InputStream in, String charsetName); // 指定字符编码
InputStreamReader(InputStream in, Charset charset); // 指定字符编码

例子:

try (InputStream inputStream = new FileInputStream("example.txt");Reader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8)) {int c;while ((c = reader.read()) != -1) {System.out.print((char) c);}
} catch (IOException e) {e.printStackTrace();
}

2. OutputStreamWriter

OutputStreamWriter 是一个 从字符流到字节流的转换器。它将字符输出流(Writer)转换为字节输出流(OutputStream),并允许指定字符编码。

构造方法

OutputStreamWriter(OutputStream out); // 使用默认字符编码
OutputStreamWriter(OutputStream out, String charsetName); // 指定字符编码
OutputStreamWriter(OutputStream out, Charset charset); // 指定字符编码

例子:

try (OutputStream outputStream = new FileOutputStream("example.txt");Writer writer = new OutputStreamWriter(outputStream, StandardCharsets.UTF_8)) {writer.write("Hello, World!");writer.flush();
} catch (IOException e) {e.printStackTrace();
} 

注意:写入和读取的编码要相同才可以成功转换。

二、Properties

 Properties 类概述

Properties类是Java中用于处理键值对数据的工具类,主要用于加载和管理配置文件。(如.properties文件)。它继承自Hashtable,因此具有线程安全性,同时只能存储字符串类型的键和值,同时支持持久化,即:Properties可以保存到流中(如文件),也可以从流中加载。

例子:

使用Properties类加载和解析配置文件

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;public class PropTest6 {public static void main(String[] args) {// 创建一个Properties对象,用于存储键值对数据Properties prop = new Properties();InputStream in = null; // 定义一个InputStream变量,用于加载配置文件try {// 使用ClassLoader加载资源文件// 这里加载的是位于类路径下的names.properties文件// 类路径通常是src目录,打包后是JAR文件的根目录in = PropTest6.class.getClassLoader().getResourceAsStream("names.properties");// 检查输入流是否为null,避免加载失败时抛出异常if (in == null) {throw new IllegalArgumentException("Resource file not found: names.properties");}// 从输入流中加载数据到Properties对象中// load()方法会解析输入流中的内容,并将其存储为键值对prop.load(in);// 打印加载的配置信息// Properties类重写了toString()方法,可以直接打印其内容System.out.println(prop);} catch (Exception e) {// 捕获加载过程中可能发生的异常,例如文件未找到或格式错误e.printStackTrace();} finally {// 在finally块中关闭InputStream资源,确保不会发生内存泄漏if (in != null) {try {in.close(); // 关闭输入流} catch (IOException e) {// 捕获关闭流时可能发生的异常e.printStackTrace();}}}}
}

这个例子展示了如何使用Properties类加载和解析配置文件(.properties文件),并将其内容存储到Properties对象中。这种模式在实际开发中非常常见,主要用于以下几种场景:

其中最常用的就是数据库的连接:

数据库的连接信息(如URL、用户名、密码)通常存储在配置文件中,而不是硬编码到代码中。通过Properties类加载配置文件,可以在运行时动态获取这些信息,便于维护和更新。

连接数据库示例:

数据库配置文件(例子db.properties
db.url=jdbc:mysql://localhost:3306/mydatabase
db.username=root
db.password=123456
连接代码演示:
Properties prop = new Properties();
InputStream in = getClassLoader().getResourceAsStream("db.properties");
prop.load(in);String dbUrl = prop.getProperty("db.url");
String dbUsername = prop.getProperty("db.username");
String dbPassword = prop.getProperty("db.password");// 使用这些信息连接数据库

通过Properties实体类prop的调用就可以获取连接数据库的关键信息。

注释:
  1. 类名.class 是反射获取 Java 类对应的 Class 对象的类信息。
  2. getClassLoader() 是 Class 对象的方法,用于获取加载当前类的类加载器。
  3. getResourceAsStream() 是 ClassLoader 和 Class 提供的方法,可将类路径下的资源文件以输入流形式获取,便于读取资源内容。

 Properties提供的常用方法

加载与保存

  • load(InputStream inStream):从输入流加载属性,用于读取配置文件。
  • load(Reader reader):从字符输入流加载属性。
  • store(OutputStream out, String comments):把属性存到输出流,可加注释。
  • store(Writer writer, String comments):将属性存到字符输出流。

属性操作

  • getProperty(String key):根据键获取属性值。
  • getProperty(String key, String defaultValue):获取属性值,无则返回默认值。
  • setProperty(String key, String value):设置属性的键值对。

其他

  • stringPropertyNames():返回所有键的集合。
  • list(PrintStream out):把属性列表打印到指定输出流。

 通过Properties的性质,就可以实现动态部署而实现在游戏服务器需要更新时不停服。

假设有一个运行中的项目,它依赖于某个数据库库(如MySQL)。现在,希望将数据库切换到另一个库(如PostgreSQL),而不需要停服(因为重要信息并不是直接写在代码中的,而是通过Properties获取的),只需要修改.properties配置文件即可。

三、Random 类中的常用方法

  1. Random():无参构造方法,使用系统当前时间作为种子创建随机数生成器。

  2. Random(long seed):使用指定的种子值创建随机数生成器,相同种子生成相同的随机数序列。

  3. nextInt():生成一个范围在 -2^312^31 - 1 的随机整数。

  4. nextInt(int n):生成一个范围在 [0, n) 的随机整数。

  5. nextDouble():生成一个范围在 [0.0, 1.0) 的随机双精度浮点数。

  6. nextFloat():生成一个范围在 [0.0, 1.0) 的随机单精度浮点数。

  7. nextLong():生成一个随机的长整数。

  8. nextBoolean():生成一个随机布尔值(truefalse)。

http://www.dtcms.com/wzjs/810535.html

相关文章:

  • 工作室网站需要备案吗wordpress 自定义主页
  • 嘉兴丝绸大厦做网站的公司住房和城乡建设部官方网站发布
  • 防城港门面做网站的企业网页制作要注意什么
  • 网站建设 精品课程电子商务网站建设html
  • centos6.6做网站合肥建设局网站首页
  • 网站准备建设的内容企业建设微网站的重要性
  • 山东省住房和城乡建设厅网站首页长春百度seo排名
  • 网站的静态页面用什么做网站营销优化
  • wordpress整站导入上海网页设计公司济南兴田德润团队怎么样
  • 做优惠卷网站倒闭了多少wordpress 修改配置文件
  • 公司网页网站建设 ppt新能源汽车价格趋势
  • 广西美丽乡村建设网站网站技术说明书模板
  • 网站建设中 显示自己做的网站可以开直播
  • iis发布网站页面出问题怎么建设自己导购网站
  • 网站建设网站制作价格西地那非片的副作用
  • 山西省住房建设厅网站首页山东银汇建设集团网站
  • 深圳讯美网站建设iis部署网站 win7
  • 企业加强网站建设的必要性昆明市建设厅官方网站
  • 济南建设银行公积金网站河南网站seo费用
  • 上传网站需要什么软件wordpress 搬家到本地
  • 龙华民治网站建设代理ip免费软件
  • 太原网站建设平台新式装修
  • 网站建立费用外贸福步论坛登录
  • 尉氏做网站浙江重大工程交易网
  • 浙江住房城乡建设厅网站网站制作的电话
  • 北京网站建设哪家便宜建设厅五大员证书查询网站
  • 网站维护 推广注册查询系统
  • 网站建设实践报告3000字昆明做网站优化的公司
  • 网站定制公司报价wordpress自定义分类分页
  • 潍坊网站建设wfzhy网络有限公司简介