文件保存
从键盘输入文件的内容和要保存的文件的名称,然后根据输入的名称创建文件,并将内容保存到文件中。
在本程序里只要求开发者保存的是文件名称而并没有设置文件路径,那么对于文件路径就应该在程序启动之前就准备好。
- 主方法定义默认路径
package com.filesave.demo; import java.io.File; public class IOCaseDemo { private static final String SAVE_DIR = "F:" + File.separator + "FileSaveDir"; static { //项目启动的时候该路径首先应该已经被创建 File file = new File(SAVE_DIR); //保存的文件路径,但是有可能不存在 if(!file.exists()) { //文件目录不存在 file.mkdirs(); // 创建目录 } } public static void main(String[] args) { } }
- 定义接收文件内容的工具类
package com.filesave.demo.util; import java.util.Scanner; public class InputUtil { private InputUtil() {} /** * 接收并返回输入的字符串内容 * @param prompt 提示语句 * @return 返回输入的字符串 */ public static String getString(String prompt) { String str = null; boolean flag = true; while(flag) { Scanner input = new Scanner(System.in); System.out.println(prompt); if(input.hasNext()) { str = input.next().trim(); //去除首位空格 if(!"".equals(str)) { //不是字符串 flag = false; } }else { System.out.println("输入的内容不允许为空!"); } } return str; } }
- 定义一个接口定义文件内容保存的规范
package com.filesave.demo.service; import java.io.File; public interface IFlieService { public static final String SAVE_DIR = "F:" + File.separator + "FileSaveDir"; /** * 文件的保存处理方法 * @return 保存成功保存true,失败返回false */ public boolean save(); }
- 实现文件内容保存的接口
package com.filesave.demo.service; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintWriter; import com.filesave.demo.util.InputUtil; public class FileServiceImpl implements IFlieService{ private String name; private String content; public FileServiceImpl() { this.name = InputUtil.getString("请输入文件名称"); this.content = InputUtil.getString("请输入要保存的内容"); } @Override public boolean save() { File file = new File(IFlieService.SAVE_DIR +this.content); //定义要保存的目录 try { PrintWriter out = new PrintWriter(new FileOutputStream(file)); out.print(this.content); //打印输出 out.close(); return true; } catch (FileNotFoundException e) { e.printStackTrace(); return false; } } }
- 完善主方法
package com.filesave.demo; import java.io.File; import com.filesave.demo.factory.Factory; import com.filesave.demo.service.IFlieService; public class IOCaseDemo { private static final String SAVE_DIR = "F:" + File.separator + "FileSaveDir"; static { //项目启动的时候该路径首先应该已经被创建 File file = new File(SAVE_DIR); //保存的文件路径,但是有可能不存在 if(!file.exists()) { //文件目录不存在 file.mkdirs(); // 创建目录 } } public static void main(String[] args) { IFlieService fileService = Factory.getInstance(); System.out.println(fileService.save()); } }