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

指定行追加文件 JAVA IO

    博客分类:
  • java
 
阅读更多

 在文件里增加一行的唯一方法就是读取原始文件,然后写入到一个临时文件,同时写入要插入的数据。然后删除原始文件,再把临时文件改名为原始文件名。

package net.java2000.io;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
/**
* 给文件增加一行数据。
*
* @author 赵学庆,Java世纪网(java2000.net)
*
*/
public class FileInsertRow {
 public static void main(String args[]) {
  try {
   FileInsertRow j = new FileInsertRow();
   j.insertStringInFile(new File(args[0]), Integer.parseInt(args[1]), args[2]);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 /**
  * 在文件里面的指定行插入一行数据
  *
  * @param inFile
  *     文件
  * @param lineno
  *     行号
  * @param lineToBeInserted
  *     要插入的数据
  * @throws Exception
  *      IO操作引发的异常
  */
 public void insertStringInFile(File inFile, int lineno, String lineToBeInserted)
   throws Exception {
  // 临时文件
  File outFile = File.createTempFile("name", ".tmp");
  // 输入
  FileInputStream fis = new FileInputStream(inFile);
  BufferedReader in = new BufferedReader(new InputStreamReader(fis));
  // 输出
  FileOutputStream fos = new FileOutputStream(outFile);
  PrintWriter out = new PrintWriter(fos);
  // 保存一行数据
  String thisLine;
  // 行号从1开始
  int i = 1;
  while ((thisLine = in.readLine()) != null) {
   // 如果行号等于目标行,则输出要插入的数据
   if (i == lineno) {
    out.println(lineToBeInserted);
   }
   // 输出读取到的数据
   out.println(thisLine);
   // 行号增加
   i++;
  }
  out.flush();
  out.close();
  in.close();
  // 删除原始文件
  inFile.delete();
  // 把临时文件改名为原文件名
  outFile.renameTo(inFile);
 }
}

分享到:
评论

相关推荐

    java IO以追加方式写文件FileWrite

    首先,让我们创建一个`FileWriter`实例并指定追加模式。在Java中,我们可以设置一个布尔参数来控制是否启用追加模式。如果该参数为`true`,`FileWriter`将在文件末尾追加内容,否则它将覆盖文件内容。以下是一个简单...

    java_IO操作_(读写、追加、删除、移动、复制、修改

    Java中的IO操作是进行文件处理的核心技术之一,涵盖了读写、追加、删除、移动、复制、修改等基本功能。本文将围绕这些操作展开详细解释,重点解析如何使用Java进行文件的读取。 ### 一、Java IO读取文件内容 #### ...

    java io 文件操作大全

    ### Java IO 文件操作大全 #### 一、目录的建立/检查与删除 在Java中,可以使用`java.io.File`类来创建、检查以及删除目录。以下是一个示例代码: ```java ;charset=gb2312" %> <%@ page import="java.io.*" %> ...

    java 文件操作及IO流

    Java 文件操作与IO流是Java编程中的核心概念,主要用于数据的读取、写入和传输。在Java中,文件操作通常涉及到`java.io`包下的类,如`File`、`FileOutputStream`、`OutputStreamWriter`和`BufferedWriter`等。下面将...

    java-IO操作-(读写、追加、删除、移动、复制、修改).doc

    1. 文件追加操作:通过 FileOutputStream 或 FileWriter 对象追加文件内容。 2. 文件删除操作:通过 File 对象删除文件。 3. 文件移动操作:通过 File 对象移动文件。 4. 文件复制操作:通过 FileInputStream 和 ...

    java IO操作 (读写、追加、删除、移动、复制) 源码集合

    Java IO 操作是Java编程中不可或缺的一部分,它用于处理输入和输出流,涉及对文件、网络数据、系统管道等的数据传输。在这个源码集合中,我们主要关注的是对文件的各种操作,包括读取、写入、追加、删除、移动和复制...

    java.io包讲解

    Java.io包是Java编程语言中非常重要的一个标准库,它提供了丰富的类和接口,支持多种输入/输出流的处理方式,包括文件I/O、网络通信等场景。Java.io包的核心设计思想是以流(Stream)为基础,通过不同的流类型来处理...

    java_IO操作

    Java IO 操作是Java编程中不可或缺的一部分,它涵盖了文件的读写、追加、删除、移动和复制等多种功能。在Java中,IO流(Input/Output Stream)是处理输入输出的主要方式,它允许数据从一个源(如硬盘或网络)传输到...

    java IO文档

    Java IO(输入/输出)系统是Java平台中的一个重要组成部分,主要用于处理文件读写、网络通信等数据传输操作。Java IO库提供了一系列类和接口来实现这些功能,使得开发人员能够方便地进行数据的输入和输出操作。 ###...

    javaIO操作(读写、追加、删除、移动、复制、修改).pdf

    - **追加文件**:通过在创建 `FileOutputStream` 时传入 `true` 参数,可以将新数据追加到现有文件的末尾。 - **删除文件**:使用 `File` 类的 `delete()` 方法可以删除文件。 - **移动和重命名文件**:`File` 类的 ...

    文件IO编程总结

    1. 打开文件:使用特定的函数(如C++的`fopen`,Java的`FileInputStream`或Python的`open`)打开一个文件,指定文件路径和访问模式(读、写、追加等)。例如,`fopen("example.txt", "r")`表示以只读模式打开名为...

    java 写文件 java 写文件 java 写文件 java 写文件

    在Java中,写文件是通过`java.io`包中的类实现的,主要涉及File类、FileWriter类、BufferedWriter类等。下面将详细阐述Java写文件的相关知识点。 1. **File类**:File类是文件和目录路径名的抽象表示形式。它不包含...

    java第4章 JAVA IO流

    在处理文件操作时,我们还会学到文件复制、文件追加、文件删除等操作,这些都是通过IO流实现的。例如,使用PipedInputStream和PipedOutputStream可以实现线程间的通信,而DataInputStream和DataOutputStream则支持...

    java IO操作 (读写、追加、删除、移动、复制) 源码集合.pdf

    在Java中,我们可以使用各种类和接口来实现对文件的读写、追加、删除、移动和复制。以下是一些核心知识点: 1. **读取文件**: - **按字节读取**:`FileInputStream` 类提供了按字节读取文件的功能。通过 `read()`...

    java IO章节的总结

    Java IO(输入/输出)系统是Java平台的重要组成部分,它提供了用于文件和数据流处理的基础框架。根据数据传输的基本单位不同,Java IO系统主要分为两大类:字节流和字符流。这两类流又各自包含输入流和输出流,形成...

    Java 读写文件文本文件的示例

    - **实现方法**:通过`BufferedReader`逐行读取文件,并将每一行追加到`StringBuffer`对象中。`BufferedReader`能够提高读取效率,因为它支持一次读取一行数据。 ```java public void readToBuffer(StringBuffer ...

    java IO基础

    在Java中,IO操作主要涉及文件读写、网络通信、流的处理等方面,对于任何需要与外部世界交换数据的Java应用来说,Java IO都是非常关键的知识点。 **1. 流的概念** Java IO的核心概念是“流”。流是一组有序的数据...

Global site tag (gtag.js) - Google Analytics