栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

在文本文件任一位置插入字符串(Java)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在文本文件任一位置插入字符串(Java)

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作业的思路,可能不是最好的实现方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874653.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号