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());
}
}
分享到:
相关推荐
终于重构好代码了,使用模式:模板模式、策略模式、建造者模式、单一职责,弄一个余弦定理、simhash文本查重代码,并使用二叉排序树和平衡二叉树(待测试)来优化查询。百万数据查重秒查
java邮件发送的工具类,方法都已封装好,一键调用即可发送,支持普通文本邮件,支持带有附件的邮件,支持html代码的邮件内容
读取、删除、写文件、文本追加、复制文件、复制文件夹及其下面文件,读取目录下所有文件等操作
JAVA字符串操作类CTool.java字符转换类,此类中收集Java编程中WEB开发常用到的一些工具。为避免生成此类的实例,构造方法被申明为private类型的。封装的功能:字符串从GBK编码转换为Unicode编码、对字符串进行md5...
应用面向对象程序设计课程中的“封装和继承”的基本原理,本课程中“类、对象和接口”的基本概念、以及“Java的事件处理机制”、“图形用户界面设计”技术,当在文本区中输入若干数时,下面的文本框同时对输入的数...
java实现扫一扫的类
java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im 提供输入方法框架所需的类和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的...
java 操作数据库 3实例 (三种不同数据库操作增删改查) 1.实际用到什么数据库替换相应的JDBC驱动包 2.已经封装接口增删改查 3.表结构在项目txt文本中,对应的驱动链接Driver_comment.txt中有说明
HelloNativeTest.java 测试本地化是否成功的类文件 instanceVar.java 定义一个实例成员变量 invokeByObject.java 对象实参传递示例程序 invokeByValue.java 传值调用示例程序 invokeMethod.java 同一个类中调用...
3. 创建实体类,封装对应的属性。 4. 创建util类,对数据库的连接进行管理。 5. 编写dao层接口,定义添加数据的接口方法。 6. 编写dao层实现类,实现添加数据的方法。 7. 编写一个main方法,逐行读取数据,并调用dao...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im 提供输入方法框架所需的类和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口...
工具类中封装了钉钉文本消息、钉钉markdown消息、钉钉link消息、钉钉feedCard消息、钉钉actionCard消息的消息提醒工具类,传入对应参数即可使用,用前需要自定导入钉钉的所使用的jar包,对应的pom: <groupId>...
这是本人所写封装好了的Java图片验证码工具类,包含了四位图片验证码,和图片验证码文本获取方法,内含api技术文档
java 使用zxing生成二维码(带logo和文字说明)已经封装 使用起来很方便 下载下来直接调用传入参数就可以
首先编写一个封装梯形类,然后再编写一个窗口。要求窗口使用三个文本框和 一个文本区为梯形中的数据提供视图,其中三个文本框来显示和更新梯形对象的上底、下底和高,文本区对象来显示梯形的面积。窗口中有一个按钮...
Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计...
Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计...
Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。 GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计...