使用Java字符流FileWriter创建配置文件
4316字,阅读需时15分钟

前面介绍了字节输入流FileInputStream和字节输出流FileOutputStream。本节介绍字节输出流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)场景1:应用File对象,实例化一个FileWriter对象

FileWriter(File file);

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

FileWriter(String fileName);

(3)场景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方法将程序声明的三个字符串对象按照配置文件结构要求格式化后写入到文件。

package com.sample.writedemo;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
 
public class FileWriteDemo {
public static void main(String[] args) {
    //url存储数据库的连接地址
    //username存储数据库的访问账户
    //password存储数据库的访问密码
    String url = "";
    String username = "";
    String password = "";
   
    //声明Scanner变量,并用new运算符实例化Scanner
        Scanner sc = new Scanner(System.in);
       
        //请求用户输入数据库连接地址、访问账户、访问密码
        //提示用户输入数据库连接地址
        System.out.println("请输入数据库连接地址");
        url = "jdbc.url=" + sc.next();
        //提示用户输入数据库访问账户
        System.out.println("请输入数据库访问账户");
        username = "jdbc.username=" + sc.next();
 
        //提示用户输入数据库访问密码
        System.out.println("请输入数据库访问账户");
        password = "jdbc.password==" + sc.next();
 
        //实例化File对象,文件路径为d://myproperty.txt     
        File  file = new File("d://myproperty.txt");
    try {
        //创建配置文件
        file.createNewFile();
        //实例化FileWriter
        FileWriter  fos = new FileWriter(file);
        //写入数据库连接地址
        fos.write(url);
        fos.write("\n");
        //写入数据库访问账户
        fos.write(username);
        fos.write("\n");
        //写入数据库访问密码
        fos.write(password);
        fos.flush();
        fos.close();
       
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}

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

image.png         

                                     

图 1  新建配置文件案例输出结果

文章小结

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

我要评论
全部评论
郎宏林
授课老师
授课老师简介
项目经理,系统分析和架构师,从事多年中文信息处理技术。熟悉项目管理、擅长项目需求分析和设计、精通Java、C#、Python等编程语言。
下载APP

手机、电脑同步学

用微信或手机浏览器扫描二维码,即可下载APP。

  • 备案号:鲁ICP备15001146号
  • @1997-2018 潍坊米粒花网络技术有限公司版权所有