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);
}
}

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;/**
PrintWriter类是首选的用于写入一个文本 文件 的流类。 1).IO Exception 处理 文件 I/O时,程序很多时候可能会抛出某个类(如 File NotFound Exception 类)的异常,这些不同的异常类很多是IO Exception 类的子孙类,IO Exception 类是与输入和输出有关的各种异常类的根类。 2).PrintWrite类的方法 public PrintWriter(Out...
文件 里增加 一行 的唯一方法就是读取原始 文件 ,然后写入到一个临时 文件 ,同时写入要 插入 数据 。然后删除原始 文件 ,再把临时 文件 改名为原始 文件 名。 package net. java 2000.io; import java .io.BufferedReader; import java .io. File ; import java .io. File InputStream; import java .io. File O...
要在csv 文件 指定 位置 插入 ,可以使用pandas模块中的`read_csv()`和`to_csv()`方法。首先,使用`read_csv()`方法读取csv 文件 ,并将其存储为pandas 数据 帧。然后,使用pandas 数据 帧的`iloc[]`方法,在 指定 索引位置 插入 。最后,使用`to_csv()`方法将修改后的 数据 帧保存回csv 文件 中。 下面是一个示例代码,其中在csv 文件 的第3 插入 : ``` python import pandas as pd # 读取csv 文件 df = pd.read_csv('data.csv') # 在第3 之后 插入 new_row = pd.DataFrame({'col1': 'value1', 'col2': 'value2', 'col3': 'value3'}, index=[2.5]) df = pd.concat([df.iloc[:2], new_row, df.iloc[2:]]).reset_index(drop=True) # 保存修改后的 数据 帧到csv 文件 df.to_csv('data.csv', index=False) 在这个例子中,新 被定义为一个带有三个列的pandas 数据 帧,并使用`index`参数 指定 在第3 之后 插入 。然后使用`concat()`方法将新 与原始 数据 帧合并,并使用`reset_index()`方法重置索引。最后,使用`to_csv()`方法将修改后的 数据 帧保存回csv 文件 中,`index=False`参数表示不保存索引。