文件里面的指定行插入一行数据
2010-04-13 13:27
411 查看
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);
}
}
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);
}
}
相关文章推荐
- C读写文件--逐行输出、删除指定的一行,指定位置插入
- php 在文件指定行插入数据的代码
- php 在文件指定行插入数据的代码
- ?c#把一行数据插入到datatable里面去?
- 利用Apache POI在已有的Excel文件中插入一行新的数据
- 如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?
- 使用jmeter往指定文件中插入一定数量的数据
- 在一个文件中的每一行的指定列插入字符
- 关于把数据录入到指定的文件里面,并调用这些数据做运算
- 使用Apache POI操作Excel文件---在已有的Excel文件中插入一行新的数据
- python xlwt,xlutils 在excel里面如何插入一行数据
- 利用存储过程读指定文件夹里所有txt文件,将数据插入数据库中
- 用php实现在文件指定行插入数据的方法
- php 在文件指定行插入数据实例
- (2) 如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?
- c#如何把一行数据插入到datatable里面去?
- c#如何把一行数据插入到datatable里面
- 数据结构--如何对一个线性表里面的元素赋值,并且显示插入一个数据后的情况
- 为指定文本文件的的每一行的结尾添加指定字符串并写入新文件中
- ADO.NET基础实战 从文件读取数据插入到数据库