3、创建文件,写入数据, 重新封装,请老师检查,感恩!

来源:16-20 测评作业

mottoyin

2025-02-23

UserFileWriter类

package com.imooc.chapter16test;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class UserFileWriter {
    //私有成员属性bufferWriter
    private BufferedWriter bufferedWriter;
    private FileWriter fileWriter;

    //不含餐的构造方法
    public UserFileWriter() {
    }

    public BufferedWriter getBufferedWriter() {
        return bufferedWriter;
    }

    public void setBufferedWriter(BufferedWriter bufferedWriter) {
        this.bufferedWriter = bufferedWriter;
    }

    public FileWriter getFileWriter() {
        return fileWriter;
    }

    public void setFileWriter(FileWriter fileWriter) {
        this.fileWriter = fileWriter;
    }

    /**
     * 写入字符串
     * @param content 用户控制台输入的字符串
     * @param file 传入用户创建的File对象
     */
    public void writeUserInput(File file, String content){
        try {
            //实例化fileWriter对象,追加内容为真
            fileWriter = new FileWriter(file,true);
            //实例化bufferedWriter对象,传入fileWriter对象
            bufferedWriter = new BufferedWriter(fileWriter);
            //写入用户传入的字符串
            bufferedWriter.write(content);
            //写入换行
            bufferedWriter.newLine();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }finally {
            //如果fileWriter与bufferedWriter都不为空
            //将缓冲区内容写入文件关闭缓冲区
            if(fileWriter != null && bufferedWriter != null){
                try {
                    fileWriter.flush(); //关闭缓冲区
                    bufferedWriter.flush();
                    fileWriter.close();
                    bufferedWriter.close();
                } catch (IOException e) {
                    System.out.println(e.getMessage());
                }
            }
        }
    }
}

测试类

package com.imooc.chapter16test;

import java.io.File;
import java.util.Scanner;

public class UserFileWriterTest {
    public static void main(String[] args) {
        String fileName = "readme.txt"; //文件名
        String directory = "./"; //当前目录

        //使用File(String parent, String child)实例化File对象
        File file = new File(directory,fileName);

        //提示用户输入字符串并捕捉用户输入
        System.out.println("请输入字符串: ");
        Scanner sc = new Scanner(System.in);
        String contents = sc.nextLine();

        UserFileWriter userFileWriter = new UserFileWriter();
        userFileWriter.writeUserInput(file,contents);
        System.out.println("写入数据完成");
    }
}

写回答

1回答

彭彭老师

2025-02-24

没有问题

0
0

Java零基础入门与实战

Java零基础入门与实战 多场景|多案例|全栈项目

291 学习 · 225 问题

查看课程