`
myzhijie
  • 浏览: 27989 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

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());
	}
}
1
2
分享到:
评论

相关推荐

    java文本查重工具类封装

    终于重构好代码了,使用模式:模板模式、策略模式、建造者模式、单一职责,弄一个余弦定理、simhash文本查重代码,并使用二叉排序树和平衡二叉树(待测试)来优化查询。百万数据查重秒查

    java一键发送邮件,封装好的工具类

    java邮件发送的工具类,方法都已封装好,一键调用即可发送,支持普通文本邮件,支持带有附件的邮件,支持html代码的邮件内容

    java文件操作类封装

    读取、删除、写文件、文本追加、复制文件、复制文件夹及其下面文件,读取目录下所有文件等操作

    JAVA字符串操作类CTool.java字符转换类.rar

    JAVA字符串操作类CTool.java字符转换类,此类中收集Java编程中WEB开发常用到的一些工具。为避免生成此类的实例,构造方法被申明为private类型的。封装的功能:字符串从GBK编码转换为Unicode编码、对字符串进行md5...

    JAVA文本框、文本区和布局的设计

    应用面向对象程序设计课程中的“封装和继承”的基本原理,本课程中“类、对象和接口”的基本概念、以及“Java的事件处理机制”、“图形用户界面设计”技术,当在文本区中输入若干数时,下面的文本框同时对输入的数...

    java实现扫一扫封装的工具类

    java实现扫一扫的类

    JAVA_API1.6文档(中文)

    java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im 提供输入方法框架所需的类和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的...

    java 操作数据库 3实例 (三种不同数据库操作增删改查)

    java 操作数据库 3实例 (三种不同数据库操作增删改查) 1.实际用到什么数据库替换相应的JDBC驱动包 2.已经封装接口增删改查 3.表结构在项目txt文本中,对应的驱动链接Driver_comment.txt中有说明

    Java开发技术大全(500个源代码).

    HelloNativeTest.java 测试本地化是否成功的类文件 instanceVar.java 定义一个实例成员变量 invokeByObject.java 对象实参传递示例程序 invokeByValue.java 传值调用示例程序 invokeMethod.java 同一个类中调用...

    java实现文本数据读取到数据库表

    3. 创建实体类,封装对应的属性。 4. 创建util类,对数据库的连接进行管理。 5. 编写dao层接口,定义添加数据的接口方法。 6. 编写dao层实现类,实现添加数据的方法。 7. 编写一个main方法,逐行读取数据,并调用dao...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    Java 1.6 API 中文 New

    java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im 提供输入方法框架所需的类和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口...

    钉钉机器人消息提示Java消息发送工具类封装

    工具类中封装了钉钉文本消息、钉钉markdown消息、钉钉link消息、钉钉feedCard消息、钉钉actionCard消息的消息提醒工具类,传入对应参数即可使用,用前需要自定导入钉钉的所使用的jar包,对应的pom: &lt;groupId&gt;...

    Java图片验证码工具类

    这是本人所写封装好了的Java图片验证码工具类,包含了四位图片验证码,和图片验证码文本获取方法,内含api技术文档

    java生成二维码工具类(带logo和文字说明) 很实用

    java 使用zxing生成二维码(带logo和文字说明)已经封装 使用起来很方便 下载下来直接调用传入参数就可以

    java_java练习题_

    首先编写一个封装梯形类,然后再编写一个窗口。要求窗口使用三个文本框和 一个文本区为梯形中的数据提供视图,其中三个文本框来显示和更新梯形对象的上底、下底和高,文本区对象来显示梯形的面积。窗口中有一个按钮...

    java开源包11

    Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计...

    java开源包6

    Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计...

    java开源包4

    Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计...

Global site tag (gtag.js) - Google Analytics