【Java】使用PrintWriter写入文本文件

使用PrintWriter写入文本文件

使用Scanner和BufferedReader读取文本文件请参考:https://blog.csdn.net/qq_43524683/article/details/99646584
使用DataInputStream和DataOutputStream读写二进制文件请参考:https://blog.csdn.net/qq_43524683/article/details/100544798

1. 主函数

	public static void main(String[] args){
        Demo demo=new Demo();
        demo.coverWriter();       覆盖式写入文件
        demo.appendWriter();      追加式写入文件        
    }

主函数中将两种方式 分别封装在两个方法中,注意使用注释。

2. 覆盖式写入

	//覆盖式写入文件
    public void coverWriter(){
        String fileName="F:\\IDEA_Codes\\WriteTextFiles\\src\\f.txt";
        PrintWriter toFile=null;

        try{
            toFile=new PrintWriter(fileName);         //将数据流outStream连接到名为f.txt的文件
                                                       //此方法将文件连接到数据库时,总是从一个空文件开始
                                                       //若文件已存在,则原来的文件内容丢失;若不存在,则重新创建一个空文件
        } catch (FileNotFoundException e) {
            //e.printStackTrace();
            System.out.println("PrintWriter error opening the file:"+fileName);
            System.exit(0);
        }
        System.out.println("Please input four lines of text:");         //本例中控制输入4行
        Scanner keyboard=new Scanner(System.in);         //使用Scanner获得输入

        for(int count=1;count<=4;count++){
            String line=keyboard.nextLine();         //获取一行内容
            toFile.println(count+". "+line);         //PrintWriter的println写文件方法与System.out.println写屏幕方法类似
        }

        System.out.println("Four lines were written to "+fileName);
        toFile.close();      //显示关闭数据流,避免数据丢失
    }

运行程序,输入下列内容:

To see the world in a grain of sand,
a heaven in a wild flower;
Hold infinity in the palm of your hand,
and eternity in an hour.

则可以看到运行结果。再次打开相应的文件,则:
在这里插入图片描述

PrintWriter构造函数为Java 5的新内容,注意JDK的版本。

3. 追加式写入

上例中若f.txt内容已经存在,重新运行程序,原有的内容将会丢失。在本方法中将输入的内容追加到文件的末尾。

	//追加式写入文件
    public void appendWriter(){
        String fileName="F:\\IDEA_Codes\\WriteTextFiles\\src\\f.txt";

        FileWriter fw=null;
        PrintWriter toFile=null;

        try{
            fw=new FileWriter(fileName,true);  //本代码中增加FileWriter      //可以抛出IOException异常
            toFile=new PrintWriter(fw);         //将数据流outStream连接到名为f.txt的文件  //可以抛出FileNotFoundException异常

        } catch (FileNotFoundException e) {
            //e.printStackTrace();
            System.out.println("PrintWriter error opening the file:"+fileName);
            System.exit(0);
        } catch (IOException e) {
            //e.printStackTrace();
            System.out.println("FileWriter error opening the file:"+fileName);
            System.exit(0);
        }
        System.out.println("Please input four additional lines of text:");         //本例中控制输入4行
        Scanner keyboard=new Scanner(System.in);         //使用Scanner获得输入

        for(int count=1;count<=4;count++){
            String line=keyboard.nextLine();         //获取一行内容
            toFile.println("Translation "+count+": "+line);         //PrintWriter的println写文件方法与System.out.println写屏幕方法类似
        }

        System.out.println("Four lines were written to "+fileName);
        toFile.close();      //显示关闭数据流,避免数据丢失
    }

以上代码在前面的基础上增加了FileWriter,FileWriter类中有一个构造函数,第一个参数为文件名,第二个参数决定是否追加到该文件。本例中,输入如下内容:

在一粒沙砾中看见世界;
在一朵野花中窥见天堂;
把无限握于掌中;
将永恒置于刹那。

再次打开文件,则可看到输入内容增加到了文件的末尾。

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值