Java操作文件的三大示例分享(文本创建、删除、编辑)

乔欣 Java经验 发布时间:2023-02-12 21:10:33 阅读数:17630 1
下文笔者通过示例的方式讲述对文本的创建、删除、编辑的示例分享,如下所示

文本操作的实现思路

实现思路:
   1.使用file对象中的方法即可创建文本
   2.使用PrintWriter对象即可追加文件
   3.使用file对象的delete方法即可删除文件
//创建文本代码
/**
 *  创建文件并追加内容
 *
 * @param fileName 要删除的文件的文件名(全路径)
 * @param Content 内容
 * @return 
 */
public static void writeContentToTxt(String fileName,StringBuffer Content){
	File file = null;
	File folder = null;
	FileWriter fw = null;
	String path = System.getProperty("user.dir")+"\\test\\";
	try {
		//如果目录不存在,则目录
		folder = new File(path);
		if(!folder.exists() && !folder.isDirectory()) {
			folder.mkdirs();
		}
		//如果文件存在,则追加内容;如果文件不存在,则创建文件
		file = new File(fileName);
		if(!file.exists()){    
			file.createNewFile();    
		}  
		fw = new FileWriter(file, true);
	} catch (Exception e) {
		e.printStackTrace();
	}
	PrintWriter pw = new PrintWriter(fw);
	pw.println(Content);
	pw.flush();
	try {
		fw.flush();
		pw.close();
		fw.close();
	} catch (IOException e) {
		e.printStackTrace();
	}
}


//追加内容到文本
public  boolean saveText(list<BaseInfo> list ){
Date dt=new Date();
SimpleDateFormat matter1=new SimpleDateFormat("yyyyMMdd");
String date =  matter1.format(dt);
	boolean flag = true;
String filefullpath = Pub.getPropertiesValue("analysis", "dataPathDir")+"_.txt";         
File anaylisisFile = new File (filefullpath);
	for(BaseInfo baseInfo : list ){
		StringBuffer suf =  new  StringBuffer();
		suf.append(date);
		suf.append("|&@");
		suf.append(baseInfo.getOp_station());
		suf.append("|&@");
		suf.append(baseInfo.getIp());
		suf.append("|&@");
		suf.append(baseInfo.getMac());
		suf.append("|&@");
		suf.append(baseInfo.getPhone());
		suf.append("|&@|");
		logger.info("saveTxt suf:"+suf);
		writeContentToTxt(suf,anaylisisFile);
	 }
return flag;
}    

//删除文件
/**
 * 删除文件,可以是文件或文件夹
 *
 * @param fileName
 * 待删除的文件名
 * @return 删除成功返回true,否则返回false
 */
public static boolean delete(String fileName) {
	File file = new File(fileName);
	if (!file.exists()) {
		System.out.println("删除文件失败:" + fileName + "不存在!");
		return false;
	} else {
		if (file.isFile())
			return deleteFile(fileName);
		else
			return deleteDirectory(fileName);
	}
}

/**
 * 删除单个文件(注意:删除文件之前要关闭文件流)
 *
 * @param fileName
 *            要删除的文件的文件名
 * @return 单个文件删除成功返回true,否则返回false
 */
public static boolean deleteFile(String fileName) {
	File file = new File(fileName);
	// 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
	if (file.exists() && file.isFile()) {
		if (file.delete()) {
			System.out.println("删除单个文件" + fileName + "成功!");
			return true;
		} else {
			System.out.println("删除单个文件" + fileName + "失败!");
			return false;
		}
	} else {
		System.out.println("删除单个文件失败:" + fileName + "不存在!");
		return false;
	}
}

/**
 * 删除目录及目录下的文件
 *
 * @param dir
 *            要删除的目录的文件路径
 * @return 目录删除成功返回true,否则返回false
 */
public static boolean deleteDirectory(String dir) {
	// 如果dir不以文件分隔符结尾,自动添加文件分隔符
	if (!dir.endsWith(File.separator))
		dir = dir + File.separator;
	File dirFile = new File(dir);
	// 如果dir对应的文件不存在,或者不是一个目录,则退出
	if ((!dirFile.exists()) || (!dirFile.isDirectory())) {
		System.out.println("删除目录失败:" + dir + "不存在!");
		return false;
	}
	boolean flag = true;
	// 删除文件夹中的所有文件包括子目录
	File[] files = dirFile.listFiles();
	for (int i = 0; i < files.length; i++) {
		// 删除子文件
		if (files[i].isFile()) {
			flag = DeleteFileUtil.deleteFile(files[i].getAbsolutePath());
			if (!flag)
				break;
		}
		// 删除子目录
		else if (files[i].isDirectory()) {
			flag = DeleteFileUtil.deleteDirectory(files[i]
					.getAbsolutePath());
			if (!flag)
				break;
		}
	}
	if (!flag) {
		System.out.println("删除目录失败!");
		return false;
	}
	// 删除当前目录
	if (dirFile.delete()) {
		System.out.println("删除目录" + dir + "成功!");
		return true;
	} else {
		return false;
	}
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16762079675767.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者