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());
}
}
分享到:
相关推荐
Java文本查重工具类封装是将多种算法和设计模式整合在一起,用于高效处理大量文本的相似性检测。在这个项目中,开发者使用了模板模式、策略模式、建造者模式以及单一职责原则来确保代码的可扩展性和高内聚性。下面...
这个“java 文本字符串替换工具”提供了一种灵活的方式,不仅可以在单个文件中进行字符串替换,还可以通过批处理脚本进行自动化操作,这对于日常开发和维护工作非常有用。在实际应用中,可以根据具体需求对其进行...
这里我们关注的是一个名为"TextFile"的Java类,它提供了对文本文件进行读写的功能。JavaBean是一种特殊类型的Java类,设计用于数据封装和组件重用,通常遵循特定的命名和编码规范。在这个场景下,`TextFile`可能就是...
在Java编程环境中,调用Windows操作系统来实现文本转语音(Text-to-Speech, TTS)并生成播放文件是一项常见的需求。这项技术可以帮助开发者为应用程序添加语音合成功能,尤其适用于无障碍应用、语音助手或者多媒体...
### Java表单验证封装类简介 #### 一、概述 在Java开发中,表单验证是一项基本且重要的功能。通过有效的表单验证可以提高应用的安全性和用户体验。本篇介绍的“史上最全Java表单验证封装类”提供了一系列实用的...
标题中的“工具类级”意味着我们需要创建一个Java类,这个类将封装Jacob库的使用,提供简洁易用的API供其他Java代码调用。这样做的好处是提高了代码的可维护性和可重用性,避免了直接在业务逻辑中嵌入复杂的COM交互...
在Java编程语言中,封装是一种核心的面向对象编程原则,它允许我们将数据和操作这些数据的方法捆绑在一起,以提供更好的代码组织和安全性。标题提到的"封装java常用工具的类"是一个很好的实践,将常见的功能模块化,...
Java操作Word封装包结合JACOB与Office_Wrapper库,为开发者提供了在Java环境中与Microsoft Word交互的能力。本文将深入探讨这两个库的工作原理、使用方法以及如何解决在使用过程中遇到的问题。 首先,JACOB(Java...
在本文中,我们将深入探讨如何使用Java编程语言实现一个简易的文本编辑器。...总的来说,创建一个Java文本编辑器是一个很好的学习项目,它涵盖了面向对象编程、文件操作和GUI设计等多个关键的编程概念。
Java文本编辑器的实现基于Java的基础语法,包括类、对象、封装、继承、多态等概念。 2. **Swing库**:Java Swing是Java AWT(Abstract Window Toolkit)的一部分,用于构建图形用户界面(GUI)。在这个文本编辑器中...
Java工具包是对编程任务的一种模块化处理,它通常包含一系列预定义的方法,使得开发者能够高效地执行特定的任务,如邮件发送、文件I/O操作、文本翻译以及XML处理。本Java工具包聚焦于四个核心功能:JavaMail的封装、...
本教程将详细讲解一个已经封装好的Java邮件发送工具类——`EasyEmailUtil`,它使得邮件发送变得简单易行,无需繁琐的配置,只需一键调用即可完成。 首先,`EasyEmailUtil`类通常会包含以下几个核心功能: 1. **...
在这个程序中,`java.io.File`类用于表示文件对象,`java.io.FileInputStream`和`java.io.InputStreamReader`用来读取文件内容,而`BufferedReader`则用于按行读取文本。 2. **JFileChooser控件**:这是Java Swing...
在JavaME中,我们可以通过创建自定义类来封装菜单的逻辑,以便在多个屏幕或场景中重复使用。 1. **创建菜单类**:首先,我们需要创建一个继承自JavaME的Component或者Canvas类的新类,如`MyMenu`。这个类将包含菜单...
Java文本聚类是一种在计算机科学领域中用于组织和分析大量文本数据的技术,它涉及到自然语言处理(NLP)和机器学习。在这个Java程序代码文件中,我们主要关注两个关键概念:文本聚类和分词。 **文本聚类**是无监督...
Java文本转语音(Text-to-Speech,TTS)引擎是一种技术,它允许程序将文本数据转化为可听见的语音输出。在Java中,FreeTTS是一个开源的TTS引擎,它支持英语、法语、德语等多种语言,为开发者提供了一个方便的API来...
【Java简单文本编辑器源...通过学习和分析这个Java简单文本编辑器的源代码,开发者不仅可以掌握Java GUI编程的基础,还能深入理解事件处理、文件操作、异常处理等核心概念,为后续更复杂的Java应用开发打下坚实基础。
【简单的JAVA文本编辑器】是一个基于Java编程语言的文本编辑应用程序,主要面向初学者设计。这个项目是在国外大学的一个作业任务中完成的,其目的是帮助学习者熟悉Java Swing库的使用,Swing是Java提供的一个用于...
8. **状态检查与异常处理**:封装类可能会提供检查连接状态的方法,以及在出现错误时抛出异常或返回错误信息的机制。 9. **配置优化**:可能包括设置数据连接超时、命令连接超时、缓冲区大小等参数,以优化性能。 ...
综上所述,开发一个Java编写的文本编辑程序涉及了Java语言基础、GUI设计、文件I/O操作、文本处理等多个方面,需要开发者具备扎实的编程基础和良好的问题解决能力。在实际项目中,不断迭代优化,提升用户体验,也是...