(JavaIO编程案例)文件保存

文件保存

从键盘输入文件的内容和要保存的文件的名称,然后根据输入的名称创建文件,并将内容保存到文件中。

在本程序里只要求开发者保存的是文件名称而并没有设置文件路径,那么对于文件路径就应该在程序启动之前就准备好。

  1. 主方法定义默认路径
    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) {
    		
    	}
    	
    }
    

     

  2. 定义接收文件内容的工具类
    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;
    	}
    	
    }
    

     

  3. 定义一个接口定义文件内容保存的规范
    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();
    	
    }
    

     

  4. 实现文件内容保存的接口
    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;
    		}
    		
    	}
    	
    }
    

     

  5. 完善主方法
    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());
    		
    	}
    	
    }
    

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值