1、使用BufferedReader对象读取文件
2、StringBuffer对象存放文件按行读取的全部内容
3、split()把文本内容按行拆分,存入字符串数组
4、字符串数组转存至StringBuffer数组,方便在指定位置插入字符串
5、FileWriter对象将StringBuffer数组内容写入原文件
import java.io.*;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
//键盘录入要插入的行、列和字符串
System.out.println("输入要在哪个位置插入字符串:");
System.out.print("行: ");
int i1 = sc.nextInt();
System.out.print("列: ");
int i2 = sc.nextInt();
System.out.println("输入要插入的字符串:");
String a = sc.next();
//创建BufferedReader用以逐行读取文件
BufferedReader buff = new BufferedReader(new FileReader("E:\Java\src\IOTest2\1.txt"));
//StringBuffer对象用来存放文件的全部内容
StringBuffer s2 = new StringBuffer();
//用来标记文件行数
int i = 0;
//s1暂存文本每行的内容
String s1;
//逐行读取文件内容,并记录文件行数
System.out.println("n--------n文本原文件内容为:");
while ((s1 = buff.readLine()) != null) {
System.out.println(s1);
s2.append(s1 + " ");
i++;
}
//关闭输入流
buff.close();
//利用字符串的split()把文本内容按行拆分,存入s3的字符串数组
String[] s3 = s2.toString().split(" ");
//根据标记的行数i创建数组,并初始化空间,把String数组的内容存入StringBuffer
StringBuffer[] s = new StringBuffer[i];
for (int n = 0; n < i; n++){
s[n] = new StringBuffer();
s[n].append(s3[n]);
}
//使用StringBuffer类中的insert对指定内容进行插入字符串,并捕捉处理可能的异常
try {
s[i1 - 1].insert(i2 - 1, a);
System.out.println("n--------n修改后的文件内容为:");
for(StringBuffer z:s)
System.out.println(z);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("下标越界,文件中不存在该位置");
}catch (StringIndexOutOfBoundsException e){
System.out.println("下标越界,文件中此位置不存在");
}
//创建FileWriter输出流用以写入文件
FileWriter w = new FileWriter("E:\Java\src\IOTest2\1.txt");
//StringBuffer类型的数组s写入文件
for (int ii = 0; ii < i; ii++) {
w.write(s[ii].toString() + "n");
}
w.close();
}
}
以上为Java作业的思路,可能不是最好的实现方法