温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用Java怎么查找文本特定内容后进行修改

发布时间:2021-05-11 15:16:07 来源:亿速云 阅读:181 作者:Leah 栏目:开发技术

这期内容当中小编将会给大家带来有关使用Java怎么查找文本特定内容后进行修改,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

常用的java框架有哪些

1.SpringMVC,Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。2.Shiro,Apache Shiro是Java的一个安全框架。3.Mybatis,MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。4.Dubbo,Dubbo是一个分布式服务框架。5.Maven,Maven是个项目管理和构建自动化工具。6.RabbitMQ,RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。7.Ehcache,EhCache 是一个纯Java的进程内缓存框架。

一、问题的产生

基于I/O流编写的图书馆管理系统

在最近使用I/O流写图书馆管理系统中有修改图书信息的部分,以及借书和还书等多个部分内容都需要对文本中的特定位置的内容进行精确查找并修改,在查阅资料和同学讨论后最终将该问题解决了。

二、问题的解决

下面通过修改密码为例,演示一下该方法的实现:

具体代码:

	String filePath = "用户信息.txt";
                User modifyFile = new User();
                System.out.println("请输入原密码:");
                String oldString = sc.next();
                //如果输入的原密码不正确,无法进行修改,如果正确,才能进行修改
                if (oldString.equals(userinf[1])) {
                    System.out.println("请输入新密码:");
                    String newString = sc.next();
                    boolean result = modifyFile.writeFile(filePath, modifyFile.readFileContent(userinf, filePath, userinf[1], newString));// 修改文件中密码

//            如果修改结果为true,进行修改成功提示,否则提示修改失败
                    if (result == true) {
                        System.out.println("修改成功,请重新登录!");
                        return;
                    } else {
                        System.out.println("修改错误,请检查后重新修改!");
                    }
                } else {
                    System.out.println("输入错误,请检查后重新进行修改!");
                }

其中userinf为其他类中传入的参数,主要作用是为了进行判断密码是否正确,具体代码可以查看基于I/O流编写的图书馆管理系统

我们注意到上述代码中有一行为:

modifyFile.writeFile(filePath, modifyFile.readFileContent(userinf, filePath, userinf[1], newString));// 修改文件中密码

该行代码调用的两个方法才是解决本文内容的关键方法

具体实现如下:

// 读文件
    public String readFileContent(String[] userinf, String filePath, String oldString, String newString) {
        Scanner sc = new Scanner(System.in);
        BufferedReader br = null;
        String line = null;
        StringBuffer bufAll = new StringBuffer();// 保存修改过后的所有内容
        try {
            br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8"));

            while ((line = br.readLine()) != null) {
                StringBuffer buf = new StringBuffer();
                // 修改内容核心代码
                String[] userinf2 = line.split(",");
                if (userinf2[0].equals(userinf[0])) {//判断条件根据自己的要求修改
                    buf.append(line);
                    int indexOf = line.indexOf(oldString);
                    buf.replace(indexOf, indexOf + oldString.length(), newString);// 修改内容
                    buf.append(System.getProperty("line.separator"));// 添加换行
                    bufAll.append(buf);
                } else {
                    buf.append(line);
                    buf.append(System.getProperty("line.separator"));
                    bufAll.append(buf);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (Exception e) {
                    br = null;
                }
            }
        }
        return bufAll.toString();
    }

    // 写文件
    public boolean writeFile(String filePath, String content) {
        BufferedWriter bw = null;
        try {
            bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath), "UTF-8"));
            bw.write(content);
            bw.flush();
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        } finally {
            if (bw != null) {
                try {
                    bw.close();
                } catch (IOException e) {
                    bw = null;
                }
            }
        }
        return true;
    }

通过上述方法可以找到文本中对应行中当前信息所对应的位置,然后将newString替换为oldString

如下所示:

以下为当前用户信息:

使用Java怎么查找文本特定内容后进行修改
使用Java怎么查找文本特定内容后进行修改
在操作中就行了修改密码,此时我们再查看文件中张三所对应的密码
使用Java怎么查找文本特定内容后进行修改

此时密码已经被修改为1234

上述就是小编为大家分享的使用Java怎么查找文本特定内容后进行修改了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI