3、创建文件,写入数据,请老师检查,感恩!
来源:16-20 测评作业

mottoyin
2025-02-23
UserFileWriter类
package com.imooc.chapter16test;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class UserFileWriter {
//私有成员属性bufferWriter
private BufferedWriter bufferedWriter;
//带参构造方法
public UserFileWriter(BufferedWriter bufferedWriter) {
this.bufferedWriter = bufferedWriter;
}
public BufferedWriter getBufferedWriter() {
return bufferedWriter;
}
public void setBufferedWriter(BufferedWriter bufferedWriter) {
this.bufferedWriter = bufferedWriter;
}
/**
* 写入字符串
* @param content 用户控制台输入的字符串
*/
public void writeUserInput(String content){
try {
bufferedWriter.write(content);
bufferedWriter.newLine();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
测试类
package com.imooc.chapter16test;
import com.immoc.lottery.DataWrite;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
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();
//创建空的bufferedWriter与fileWriter实例对象
BufferedWriter bufferedWriter = null;
FileWriter fileWriter = null;
try {
//使用字符输出流将用户输入字符串写入文件
fileWriter = new FileWriter(file,true);
bufferedWriter = new BufferedWriter(fileWriter);
UserFileWriter userFileWriter = new UserFileWriter(bufferedWriter);
userFileWriter.writeUserInput(contents);
System.out.println("写入数据完成");
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
//如果fileWriter与bufferedWriter都不为空
//将缓冲区内容写入文件并关闭2个输出流
if(fileWriter != null && bufferedWriter != null){
try {
fileWriter.flush(); //关闭缓冲区
bufferedWriter.flush();
fileWriter.close();
bufferedWriter.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
}
}
写回答
1回答
-
彭彭老师
2025-02-23
没有问题,实现了作业的要求。同学封装了 UserFileWriter 类,可以将文件写入的逻辑完整地封装在 UserFileWriter 类中,这样会简化 main 方法,程序调用更简单,程序封装性更强
00
相似问题