`
java2000.net
  • 浏览: 633534 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

使用Java在文件里插入一行

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

  1. package net.java2000.io;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.PrintWriter;
  8. /**
  9.  * 给文件增加一行数据。
  10.  * 
  11.  * @author 赵学庆,Java世纪网(java2000.net)
  12.  * 
  13.  */
  14. public class FileInsertRow {
  15.   public static void main(String args[]) {
  16.     try {
  17.       FileInsertRow j = new FileInsertRow();
  18.       j.insertStringInFile(new File(args[0]), Integer.parseInt(args[1]), args[2]);
  19.     } catch (Exception e) {
  20.       e.printStackTrace();
  21.     }
  22.   }
  23.   /**
  24.    * 在文件里面的指定行插入一行数据
  25.    * 
  26.    * @param inFile
  27.    *          文件
  28.    * @param lineno
  29.    *          行号
  30.    * @param lineToBeInserted
  31.    *          要插入的数据
  32.    * @throws Exception
  33.    *           IO操作引发的异常
  34.    */
  35.   public void insertStringInFile(File inFile, int lineno, String lineToBeInserted)
  36.       throws Exception {
  37.     // 临时文件
  38.     File outFile = File.createTempFile("name"".tmp");
  39.     // 输入
  40.     FileInputStream fis = new FileInputStream(inFile);
  41.     BufferedReader in = new BufferedReader(new InputStreamReader(fis));
  42.     // 输出
  43.     FileOutputStream fos = new FileOutputStream(outFile);
  44.     PrintWriter out = new PrintWriter(fos);
  45.     // 保存一行数据
  46.     String thisLine;
  47.     // 行号从1开始
  48.     int i = 1;
  49.     while ((thisLine = in.readLine()) != null) {
  50.       // 如果行号等于目标行,则输出要插入的数据
  51.       if (i == lineno) {
  52.         out.println(lineToBeInserted);
  53.       }
  54.       // 输出读取到的数据
  55.       out.println(thisLine);
  56.       // 行号增加
  57.       i++;
  58.     }
  59.     out.flush();
  60.     out.close();
  61.     in.close();
  62.     // 删除原始文件
  63.     inFile.delete();
  64.     // 把临时文件改名为原文件名
  65.     outFile.renameTo(inFile);
  66.   }
  67. }











<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
分享到:
评论

相关推荐

    java按行读取大文件并解析入库

    java按行读取大容量文本文件,并按行解析入库。使用java.nio下面的相关方法

    JAVA WEB框架,java网站一个模块只用写一个文件

    |___SzdwServlet.java 用户自己写的servlet,在public class 上面一行有如下说明:@WebServlet(name = "SzdwServlet", urlPatterns = {"/Szdw.jsp"})告诉tomcat这个servlet的名字和路径。 框架流程详解: 用户请求...

    poi包 EXCEL模板读取填数据并导出以及在模板某行插入新的行

    NULL 博文链接:https://gojava1.iteye.com/blog/750718

    Java读取PDF查找指定文字位置,并添加悬浮图片(文档签字/盖章)

    对pdf文件进行读取,根据传入的文字去寻找指定位置信息,根据位置信息添加图片,其中样式格式可自定义,具体可查看jar包的操作文档,地址可百度。实现签字或者盖章操作,文件中包括源码和架包。

    java jdk实列宝典 光盘源代码

    java为数据结构中的列表定义了一个接口类java.util.list同时提供了3个实现类,分别是ArrayList、Vector、LinkedList使用; 生成不重复的随机数序列;列表、集合与数组的互相转换;java为数据结构中的映射定义一个接口...

    完全免费的Java/jsp开发编辑工具FirstJava2

    对初学者来说,使用方法过于复杂,如果你编译200个java文件,编译速度太慢,需要好长时间. Eclipse和Jbuild编辑辅助方式,显示的内容太多了,眼都看花了. 当你使用FirstJava2你会发现,它速度很快,功能简单,管用,反应敏捷,...

    java 面试题 总结

    换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行。从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session ...

    Java课件以及代码

    Java程序的元素之间可插入任意数量的空白,编译器将忽略掉多余的空白  程序中除了加入适当的空白外,还应使用缩进格式,使得同一层语句的起始列位置相同 不提倡的程序风格  一种不好的风格 class Point {int x,y...

    FirstJava2完全教材

    对初学者来说,使用方法过于复杂,如果你编译200个java文件,编译速度太慢,需要好长时间. Eclipse和Jbuild编辑辅助方式,显示的内容太多了,眼都看花了. 当你使用FirstJava2你会发现,它速度很快,功能简单,管用,反应敏捷,...

    Java小假期第一次作业

    并改正错误,提示:只有一行程序有错误,所以只能修改代码中的某一行程序。要求演示在eclipse开发环境下 单步调试程序,如果没有eclipse开发环境,也可以使用其它集成开发环境,但是必须演示调试能力。 2. ...

    Java核心技术II(第8版)

    第一章 流与文件 1.1 流 1.1.1 读入和写出字节 1.1.2 完整的流家族 1.1.3 组合流过滤器 1.2 文本输入与输出 1.2.1 如何写出文本输出 1.2.2 如何读入文本输入 1.2.3 以文本格式存储对象 1.2.4 字符集 1.3 读入和写出...

    java中导入导出Excel文件

    // 在Excel工作表中插入一行数据 Row row = sheet1.createRow((short) 0);//此处数字为在第几行插入数据,0表示工作表第1行,1表示第2行,以此类推 // Create a cell and put a value in it. //创建一个单元并把...

    itextpdf在已有pdf指定页及位置添加图片(包含jar及实例)

    在已有pdf文件中,指定页及绝对位置添加图片(包含itextpdf.jar及实例)

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    java面试800题

    7.在java中尽量使用preparestatement执行sql,从而共享执行计划" Q0032 Oracle的集合操作函数,如sum(),avg(),max(),min(),与select,where,grouby,having的先后顺序,使用方法 Oracle集合查询基本知识,只有进行...

    Java项目源码之文本编辑器的实现.rar

    文本编辑器是一个基于Java的应用程序,用于编辑文本文件,具有常见的文本编辑功能,如打开、保存、编辑、查找替换等。以下是该文本编辑器的一些关键特点和功能: 用户界面设计: 简洁直观:设计简洁清晰的用户界面...

Global site tag (gtag.js) - Google Analytics