ライティングプログラム:ファイル作成とコンテンツライティングを実現(ファイルクラスアプリケーション+ BufferedReaderアプリケーション)

ライティングプログラム:ファイル作成とコンテンツライティングを実現

package day20_javaIO_Demo;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Scanner;

/*
 * 文件保存处理程序
 * 从键盘输入文件的内容和要保存的文件名称,然后根据输入的名称创建文件,并将内容保存到文件中
 * 本程序只要求开发者保存的是文件名称并不需要设置文件路径
 *
 *为了防止复制错误或者因为空格导致的错误,会先trim()一下,再equals()比较
 */
class StringUtil { //输入字符串的处理方法
	
	public StringUtil() {}
	public static String getString (String prompt)  {
		BufferedReader bufile = new BufferedReader (new InputStreamReader(System.in)) ;
		String str = null ;
		boolean flag = true ;
		while (flag) {
			System.out.println(prompt);
			try {
				str = bufile.readLine() ;
				if (!"".equals(str)) {
					flag = false ;
				}else {
					System.out.println("输入内容不允许为空");
				}
			} catch (IOException e) {
				System.out.println("输入内容不允许为空");
			}
		}
		return str ;
	}
	
}
interface IFileService { //定义一个文件操作的服务接口
	//定义文件路径(利静态常量)
		public  static final String SVAE_DIR = "G:"+File.separator+"java"+File.separator ;
	/**
	 * 定义文件的保存处理方法
	 * @return 保存成功返回成功,否则返回失败
	 */
	public String save () ;
}
class FileServiceImpl implements IFileService {
	private String fname ; //文件名称
	private String fcontent ;//文件内容
	public FileServiceImpl() {
		this.fname = StringUtil.getString("请输入保存文件的名称") ;
		this.fcontent = StringUtil.getString("请输入保存文件的内容") ;
	}
	@Override
	public String save() {
		File file = new File (IFileService.SVAE_DIR + this.fname) ;
		PrintWriter out = null;
		try {
			out = new PrintWriter(new FileOutputStream(file));
			out.print(this.fcontent);
		} catch (FileNotFoundException e) {
			return "文件保存失败" ;
		}finally {
			if (out != null) {
				out.close();
			}
		}
		return "文件保存成功" ;
	}
	
}
//添加工厂类
class FactoryFile { //获得文件使用信息
	private FactoryFile () {}
	public static IFileService getInstance (){
		return new FileServiceImpl() ;
	}
}
public class java_FileSave {
	static {//项目启动的时候该路径应该首先创建
		 File file = new File (IFileService.SVAE_DIR) ; 
		 if (!file.exists()) {//如果目录不存在则创建目录
			 file.mkdirs(); //创建目录
		 }
		 }
	public static void main(String[] args) {
	IFileService fileService = FactoryFile.getInstance() ;
	System.out.println(fileService.save());
}
}

 

おすすめ

転載: blog.csdn.net/qq_41663470/article/details/114231889