java创建TXT文件并进行读、写、修改操作

### Java创建TXT文件并进行读、写、修改操作详解 在Java编程中,对文件进行操作是一项基础且重要的技能,特别是在处理大量数据或日志记录时。本文将深入解析如何利用Java来创建TXT文件,并对其执行读取、写入及修改操作。 #### 创建TXT文件 在Java中创建TXT文件主要通过`java.io.File`类和`createNewFile()`方法实现。我们需要定义一个`File`对象,指定文件的路径和名称。如示例代码所示: ```java private static String path = "D:/suncity.txt"; private static File filename = new File(path); ``` 然后调用`createNewFile()`方法创建文件。需要注意的是,如果文件已经存在,该方法将返回`false`且不会抛出异常,因此在实际应用中我们通常会检查文件是否存在,不存在时才创建: ```java public static void creatTxtFile() throws IOException { if (!filename.exists()) { filename.createNewFile(); System.err.println(filename + "已创建!"); } } ``` #### 读取TXT文件 读取TXT文件涉及使用`java.io.FileReader`和`java.io.BufferedReader`类。`FileReader`用于读取字符文件,而`BufferedReader`则提供缓冲机制,提高读取效率。示例中的`readTxtFile()`方法演示了如何读取整个文件到一个字符串中: ```java public static String readTxtFile() { String read; FileReader fileRead; try { fileRead = new FileReader(filename); bufread = new BufferedReader(fileRead); try { while ((read = bufread.readLine()) != null) { readStr = readStr + read + "\r\n"; } } catch (IOException e) { // 异常处理 } } catch (FileNotFoundException e) { // 异常处理 } return readStr; } ``` #### 写入TXT文件 写入TXT文件可以使用`java.io.RandomAccessFile`类,它允许随机访问文件的任何位置。在示例代码中,`writeTxtFile()`方法首先读取现有文件内容,然后添加新字符串并重新写入: ```java public static void writeTxtFile(String newStr) throws IOException { // 先读取原有文件内容,然后进行写入操作 String filein = newStr + "\r\n" + readStr + "\r\n"; RandomAccessFile mm = null; try { mm = new RandomAccessFile(filename, "rw"); mm.writeBytes(filein); } catch (IOException e1) { // 异常处理 } finally { if (mm != null) { try { mm.close(); } catch (IOException e2) { // 异常处理 } } } } ``` #### 修改TXT文件内容 修改TXT文件中的特定内容,如替换某一行,可以通过读取文件、修改需要的部分、然后重新写入的方式来实现。`replaceTxtByStr()`方法展示了这一过程,其中使用了`StringBuffer`来拼接和修改内容: ```java public static void replaceTxtByStr(String oldStr, String replaceStr) { String temp = ""; try { File file = new File(path); FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); StringBuffer buf = new StringBuffer(); // 保存该行前面的内容 for (int j = 1; (temp = br.readLine()) != null && !temp.equals(oldStr); j++) { buf = buf.append(temp); buf = buf.append(System.getProperty("line.separator")); } // 将内容插入 buf = buf.append(replaceStr); // 接下来继续读取并追加剩余的内容 // ... } catch (IOException e) { // 异常处理 } } ``` 在实际开发中,修改文件内容通常还需要考虑多线程安全问题以及更复杂的错误处理机制。此外,使用`java.nio`包中的`Files`和`Paths`类提供了更现代、简洁的API来操作文件,值得学习和掌握。 通过上述方法,我们可以有效地在Java中创建、读取、写入和修改TXT文件,这对于日常的文件处理任务具有重要意义。















- zitong90102012-11-14试着实现了。还不错~~就是跟我想要的功能不大一样~~
- xuefeimengli20072012-03-30只是一个示例,如果能有一些简单知识和原理介绍就好了。 适合有读写基础的来看。

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于极端随机森林的图像分类器训练代码.zip
- 基于检索与生成式对话机器人技术研究.zip
- 基于矩阵分解的个性化推荐系统实验4.zip
- 基于矩阵分解的机器学习推荐系统作业.zip
- 基于李航统计学习方法的numpy机器学习算法实现.zip
- 基于嵌入式机器学习的心跳分类预测系统.zip
- 基于朴素贝叶斯的语音性别识别与分类器对比研究.zip
- 基于深度神经网络的图像分类任务大作业.zip
- 基于深度包检测与贝叶斯算法的机器学习webshell流量检测程序.zip
- 基于深度学习的驾驶员走神行为检测系统.zip
- 基于深度学习与逻辑回归的卫星图像识别与情感分析.zip
- 基于实体实验的交互式深度学习教程.zip
- 基于图片分类的机器学习课程实验项目.zip
- 基于图灵机器人API的智能聊天学习助手.zip
- 基于手机六轴数据的动作识别计数系统.zip
- 基于吴恩达课程的机器学习部分算法合集.zip


