在Java中实现写入并保存txt文件涉及到几个关键的类和方法,这些包括但不限于`java.io.File`、`java.io.Writer`、`java.io.PrintlnWriter`以及`java.io.BufferedReader`等。下面将详细介绍如何使用这些类和方法来完成txt文件的创建和写入操作。 创建和写入txt文件通常涉及以下几个步骤:创建文件对象、写入文件内容以及关闭文件流。 ### 创建文件对象 在Java中,我们可以使用`File`类来表示一个文件,该类提供了多种方法来操作文件。当我们需要创建一个txt文件时,可以使用`File`类的构造函数并传入文件路径作为参数。如果文件不存在,我们可以使用`File`类的`createNewFile`方法来创建一个新文件。 ```java public static boolean createTxtFile(String name) throws IOException { boolean flag = false; String filenameTemp = path + name + ".txt"; File file = new File(filenameTemp); if (!file.exists()) { file.createNewFile(); flag = true; } return flag; } ``` ### 写入文件内容 要向txt文件写入内容,我们可以利用`java.io.Writer`的子类如`BufferedWriter`,`FileWriter`等。这里,我们可以使用`FileWriter`来创建一个能够写入字符流的输出流对象,然后用`BufferedWriter`进行包装,以提高写入效率。 ```java public static void write(String path) throws IOException { String s = "测试数据"; File file = new File(path); if (file.exists()) { // 如果文件存在,使用追加模式打开 BufferedWriter bw = new BufferedWriter(new FileWriter(file, true)); bw.write(s); bw.newLine(); bw.close(); } else { // 如果文件不存在,先创建文件再写入内容 createTxtFile("1.txt"); write(path); } System.out.println("写入成功"); } ``` ### 关闭文件流 写入操作完成后,一定要记得关闭文件流,以释放系统资源。通常我们会将文件流的关闭操作放在`finally`块中,确保无论是否出现异常都能关闭流。 ### 示例代码详解 上面提到的`BufferedWriterDemo`类中使用了`BufferedWriter`和`FileWriter`,这里我们可以看到一个完整的示例,它展示了如何写入内容到指定的txt文件中。 ```java package TEST; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class BufferedWriterDemo { public static void main(String[] args) throws IOException { write("E:\\1.txt"); } public static void write(String path) throws IOException { String s = "测试数据"; BufferedWriter bw = new BufferedWriter(new FileWriter(path)); bw.write(s); bw.newLine(); bw.close(); System.out.println("写入成功"); } } ``` 通过这个例子我们可以看到,`write`方法首先创建了一个`BufferedWriter`对象,并传入了`FileWriter`对象作为参数。`FileWriter`接收了一个文件路径参数,这个路径指明了文件的位置和文件名。`write`方法通过`BufferedWriter`写入了一行字符串数据,并在之后调用了`newLine`方法来插入一个换行符。关闭了`BufferedWriter`流。 ### 另一个例子 另一个例子`txtExport`类展示了如何先读取文件内容,然后追加新的内容到文件末尾。 ```java public static boolean writeTxtFile(String newStr) throws IOException { String filein = newStr + "\r\n"; String temp = ""; FileInputStream fis = null; InputStreamReader isr = null; BufferedReader br = null; FileOutputStream fos = null; PrintWriter pw = null; try { File file = new File(filenameTemp); fis = new FileInputStream(file); isr = new InputStreamReader(fis); br = new BufferedReader(isr); StringBuffer buf = new StringBuffer(); // 保存该文件原有的内容 for (int j = 1; (temp = br.readLine()) != null; j++) { buf = buf.append(temp); buf = buf.append(System.getProperty("line.separator")); } buf.append(filein); fos = new FileOutputStream(file); pw = new PrintWriter(fos); pw.write(buf.toString().toCharArray()); } finally { if (pw != null) { pw.close(); } if (br != null) { br.close(); } if (fis != null) { fis.close(); } } return true; } ``` 在这个方法中,我们首先读取了原有文件的内容,将其保存在`StringBuffer`对象中。之后,我们创建了新的字符串,并在末尾追加了换行符,然后将它追加到原有的内容后面。我们使用`PrintWriter`将合并后的内容写回文件。注意,这里的`finally`块确保了所有文件流都被正确关闭。 总结来说,Java实现写入并保存txt文件主要依赖于IO类库中的几个关键类和方法。在使用文件时,应当注意正确管理资源,及时关闭流以避免资源泄漏。同时,对于读写文件的操作,应当处理好异常情况,确保文件操作的鲁棒性。
- 粉丝: 4
- 资源: 932
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于javaweb的网上拍卖系统,采用Spring + SpringMvc+Mysql + Hibernate+ JSP技术
- polygon-mumbai
- Chrome代理 switchyOmega
- GVC-全球价值链参与地位指数,基于ICIO表,(Wang等 2017a)计算方法
- 易语言ADS指纹浏览器管理工具
- 易语言奇易模块5.3.6
- cad定制家具平面图工具-(FG)门板覆盖柜体
- asp.net 原生js代码及HTML实现多文件分片上传功能(自定义上传文件大小、文件上传类型)
- whl@pip install pyaudio ERROR: Failed building wheel for pyaudio
- Constantsfd密钥和权限集合.kt