第一句子大全,网罗天下好句子,好文章尽在本站!

使用Java输出字符流FileWriter创建配置文件

时间:2015-06-09

本节介绍字节输入流FileReader和字节输出流FileWriter的使用方法

友情提示:本文共有 2035 个字,阅读大概需要 5 分钟。

前面介绍了字节输入流FileInputStream和字节输出流FileOutputStream。本节介绍字节输入流FileReader和字节输出流FileWriter的使用方法。

编程案例

在java编程中,经常使用配置文件存储程序的一些配置属性,如数据库连接地址、访问数据库的账户和密码、下载文件的存储路径等配置属性。

本次编程任务要求创建一个配置文件,该配置文件存储三个属性,分别是数据库连接地址、访问数据库的账户、访问数据库的密码。程序启动后,要求用户输入数据库连接地址、访问数据库的账户、访问数据库的密码,并将用户输入的值存储到配置文件中。

配置文件结构如下:

jdbc.url=jdbc:mysql://192.168.50.25:3306

jdbc.username=root

jdbc.password=123456

编程探讨

编程案例给出的任务要求是创建并输出一个存储数据库连接属性的配置文件,其给出的结构是文本文件,只有三行内容,第一行内容存储数据库的连接地址,第二行内容存储数据库访问账号,第三行内容存储数据库访问密码。

配置文件每行等号的左侧是配置属性名,如jdbc.url、jdbc.username、jdbc.password,等号右侧是配置属性的值,如jdbc:mysql://192.168.50.25:3306、root、123456。

考虑到配置文件是文本文件,可以考虑使用FileWriter类,FileWriter类是字符输出类,它的构造方法同FileOutputStream相同,也提供了四个常用的构造方法。分别说明如下:

场景1:应用File对象,实例化一个FileWriter对象

FileWriter(File file);

场景2:应用给出的文件路径,实例化一个FileWriter对象

FileWriter(String fileName);

场景3:写入数据时,如果文件已存在,需要在实例化FileWriter对象时,需指明写入的数据是覆盖原文件,还是将写入的数据追加到文件尾部。

FileWriter(File file, boolean append);

FileWriter(String fileName, boolean append);

append为true时将写入的数据追加到文件尾部,为false时覆盖原文件。

本案例为新建配置文件,采用FileWriter(File file)构造方法,通过File对象创建一个新文件。

FileWriter对象实例化后,可以使用FileWriter提供的写入方法,将配置内容写入到配置文件。FileWriter类提供了三种写入方法,分别说明如下:

● public void write(int c) throws IOException

该方法写入单个字符c,当需要单字符写入文件时,可以采用该方法。例如,当需要排除某些字符写入文件时,需要判断每个写入的字符值,并根据字符值决定是否写入文件。

● public void write(char [] c, int offset, int len)

该方法将字符数组c的部分或全部内容写入文件,offset为数组的起始偏移量,len为写入的数组长度,当需要将数组的某一部分写入文件时,可以采用该方法。例如,存储一段文字内容的数组,可能只需要写入后半部内容。

● public void write(String s, int offset, int len)

该方法将字符串对象s的部分或全部内容写入文件,offset为字符串对象内容的起始偏移量,len为写入的字符串内容长度。当需要将字符串对象的内容全部或部分写入文件时,可以采用该方法。

● public void write(String s)

该方法将字符串对象写入文件,当需要将字符串对象全部内容写入文件时,可采用此方法。例如,本案例中数据库的连接地址、数据库访问账号、数据库访问密码均需要从用户处获取输入,并存储到字符串对象中。因此,本案例可以采用该方法将字符串内容写入到配置文件。

编程实现

程序声明三个字符串对象,分别存储用户输入的数据库连接地址、数据库访问账号、数据库访问密码。实例化File对象创建配置文件,实例化FileWriter对象打开字符输出流,调用FileWriter类write方法将程序声明的三个字符串对象按照配置文件结构要求格式化后写入到文件。

配置文件的属性内容由配置属性前缀+用户输入的内容拼接而成。例如:数据库连接地址由属性前缀“jdbc.url=” 和用户输入的值确定。最后,调用FileWriter的write写入配置文件的属性内容,并在每个属性内容后写入换行符。程序输出结果如下图所示:

■ 知识点拨

FileWriter主要用于输出文本类文件,如程序配置文件、XML等类型的文件。FileWriter最常用的方法是写入字符串的方法,该方法将字符串对象的全部内容写入文件。

本文如果对你有帮助,请点赞收藏《使用Java输出字符流FileWriter创建配置文件》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
深入 Java 源码剖析之字符串常量|CSDN 博文精选

深入 Java 源码剖析之字符串常量|CSDN 博文精选

...tation责编 | 屠敏出品 | CSDN 博客字符串在Java生产开发中的使用频率是非常高的,可见,字符串对于我们而言非常关键。那么从C语言过来的同学会发现,在C中是没有String类型的,那么C语言要想实现字符串就必须使用char数组,通...

2023-10-09 #经典句子

面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他

面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他

...没有任何第三方依赖,只要通过配置 jar 包,或者如果你使用 Maven 项目的话只需要配置 Maven 以来就可以。易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。屏蔽样板代码MyBatis 回屏蔽原始的 JDBC 样板代码...

2011-04-25 #经典句子

Java流程控制之switch多分支语句!

Java流程控制之switch多分支语句!

...配,再用另一个值来检测它,依此类推。当然,这种问题使用if条件语句可以完成。例使用if语句检测变量是否复合某个条件,关键代码如下:String grade = "A";if(grade == "A") {System.out.println("真棒");}if(grade == "B") {System.out.println("做的...

2023-07-15 #经典句子

如何使用Java和Spring Boot创建短链接生成器

如何使用Java和Spring Boot创建短链接生成器

...因此我们需要依次截取后面的7个字符,直至找到一个被使用过的短链接为止。生成短链接的第二种方法是使用UUID。UUID被复制的概率近似为零,因此可以完全忽略冲突的可能。由于UUID是由36个字符组成,仍然可能遇到上述问题,...

2024-01-07 #经典句子

「Java设计模式」图文代码案例详解Java五大创建者模式 建造者 原型 (抽象)工厂 单例模式

「Java设计模式」图文代码案例详解Java五大创建者模式 建造者 原型 (抽象)工厂 单例模式

...程安全版) (3)、饿汉式(线程安全) (4)、使用类的内部类(线程安全) (5)、双重锁校验(线程安全) (6)、CAS「AtomicReference」(线程安全) (7)、枚举单例(线程安全) 3、总结 一、工...

2015-06-03 #经典句子

JDK成长记14:(深度好文)从3个层面分析volatile底层原理(下)

JDK成长记14:(深度好文)从3个层面分析volatile底层原理(下)

...数栈一个变量instance。invokespecial其实执行了初始化操作,使用instance引用指向堆分配的空间。astore_0将一个数值从操作数栈存储到局部变量表。 JVM指令 JVM除了对底层硬件内存模型进行了抽象,对执行CPU指令同样进行了抽象,这...

2014-01-26 #经典句子

「软帝学院」Java怎么学?Java基础语言详解3

「软帝学院」Java怎么学?Java基础语言详解3

...院笔记Day3Java语言基础(循环结构概述和for语句的格式及其使用)A:循环结构的分类for,while,do...whileB:循环结构for语句的格式:for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体;}C执行流程:如果是true,就继续执行如果是...

2023-11-15 #经典句子

Java程序员看过来 快速了解Python语言

Java程序员看过来 快速了解Python语言

...n的基本运算● 了解Python集合数据描述● Python基本语句的使用● 了解Python的模块与函数1、在Python程序中输出数据用print语句输出“Hello World”相对Java、C#语言来说,Python语言确实非常简洁。输出“Hello World”只需一条语句就可以...

2011-12-04 #经典句子