java操作文本封装类

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * 用于对记事本的操作
 * 
 * @author 沙琪玛
 * 
 */
public class NoteOperate {
	// txt文件路径
	private String filePath;

	/**
	 * 构造函数
	 * 
	 * @param filePath
	 *            文本文件全路径
	 */
	public NoteOperate(String filePath) {
		this.filePath = filePath;
	}

	/**
	 * 构造函数
	 * 
	 * @param file
	 *            需要读取的文本文件
	 */
	public NoteOperate(File file) {
		this.filePath = file.getPath();
	}

	/**
	 * 判断文本文件是否存在
	 * 
	 * @return 存在返回true 否则返回false
	 */
	public boolean exists() {
		File file = new File(this.filePath);
		return file.exists();
	}

	/**
	 * 得到这个txt所有的列的数据 空行将自动跳过,并自动删除文字前后的空格
	 * 
	 * @return List<String>
	 * @throws IOException
	 */
	public List<String> fileLinesContent() throws IOException {
		List<String> strs = new ArrayList<String>();
		File file = new File(this.filePath);
		FileReader fr = new FileReader(file);// 建立FileReader对象,并实例化为fr
		BufferedReader br = new BufferedReader(fr);// 建立BufferedReader对象,并实例化为br
		String Line = br.readLine();// 从文件读取一行字符串
		// 判断读取到的字符串是否不为空
		while (Line != null) {
			if (!"".equals(Line))
				strs.add(Line.trim());
			Line = br.readLine();// 从文件中继续读取一行数据
		}
		br.close();// 关闭BufferedReader对象
		fr.close();// 关闭文件
		return strs;
	}

	/**
	 * 创建一个空的记事本文档 如果這個記事本文档存在就不再创建 函数还未写实现部分<br/> 如果文本已经存在则不再创建
	 * 
	 * @throws IOException
	 */
	public void createEmptyNote() throws IOException {
		File file = new File(this.filePath);
		if (!file.exists())
			file.createNewFile();
	}

	/**
	 * 将内容写入这个文本 注意以前的内容将会被删除
	 * 
	 * @param str
	 *            将要写入的内容
	 * @throws IOException
	 */
	public void writeString(String str) throws IOException {
		File file = new File(this.filePath);
		BufferedWriter output = new BufferedWriter(new FileWriter(file));
		output.write(str);
		output.close();// 关闭BufferedReader对象
	}

	/**
	 * 在文本的指定行插入文字。如果该行已经存在,该行内容将会被删除。如果行号不存在,将会被插入到最后一行
	 * 
	 * @param i
	 *            行号 行号为0时,将插入到最后一行
	 * @param str
	 *            将要插入的内容
	 * @throws IOException
	 */
	public void insertWords(int i, String str) throws IOException {
		List<String> strs = fileLinesContent();
		// 进行插入操作
		if (i == 0 || strs.size() < i) // 插入到最后一行
		{
			strs.add(str);
		} else { // 插入到文本中
			strs.set(i - 1, str);
		}
		// 重新写入到文本
		StringBuffer sb = new StringBuffer();
		for (String temp : strs) {
			sb.append(temp.replace("\r\n", "")+"\r\n");
		}
		writeString(sb.toString());
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值