返回顶部
首页 > 资讯 > 后端开发 > Python >Java基础之查找文本特定内容后进行修改
  • 453
分享到

Java基础之查找文本特定内容后进行修改

2024-04-02 19:04:59 453人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

一、问题的产生 基于I/O流编写的图书馆管理系统 在最近使用I/O流写图书馆管理系统中有修改图书信息的部分,以及借书和还书等多个部分内容都需要对文本中的特定位置的内容进行精确查找并修

一、问题的产生

基于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

如下所示:

以下为当前用户信息:

当前用户信息
修改密码
在操作中就行了修改密码,此时我们再查看文件中张三所对应的密码
修改后的密码

此时密码已经被修改为1234

到此这篇关于Java基础之查找文本特定内容后进行修改的文章就介绍到这了,更多相关java查找文本内容进行修改内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java基础之查找文本特定内容后进行修改

本文链接: https://lsjlt.com/news/124089.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java基础之查找文本特定内容后进行修改
    一、问题的产生 基于I/O流编写的图书馆管理系统 在最近使用I/O流写图书馆管理系统中有修改图书信息的部分,以及借书和还书等多个部分内容都需要对文本中的特定位置的内容进行精确查找并修...
    99+
    2024-04-02
  • 使用Java怎么查找文本特定内容后进行修改
    这期内容当中小编将会给大家带来有关使用Java怎么查找文本特定内容后进行修改,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种...
    99+
    2023-06-14
  • Java基础之删除文本文件中特定行的内容
    目录一、问题的产生二、解决思路三、具体解决方法四、总结一、问题的产生 基于I/O流编写的图书馆管理系统 在最近使用I/O流写图书馆管理系统中管理员对图书和用户的管理操作时,遇到了需要...
    99+
    2024-04-02
  • 使用Java如何删除文本文件中特定行的内容
    今天就跟大家聊聊有关使用Java如何删除文本文件中特定行的内容,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MV...
    99+
    2023-06-14
  • Java递归查找层级文件夹下特定内容的文件的方法
    目录递归查找文件引言根据特定内容寻找文件位置根据文件类型和文件名关键字查找相关文件Tips递归查找文件 引言 或许是文件太多,想找某个文件又忘记放哪了;又或者是项目改造,需要将外部调...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作