Java语言读取打开字典,字典关闭以后再读取

Java语言读取打开字典,字典关闭以后再读取,前后读取的内容是否造成了重复,为什么呢

在检查下之前给的代码吧,不太可能会出现重复,你每次打开字典,Java会重新加载字典文件,之前的内容不会保留下来的。同时关闭字典对象会被销毁,内存中的内容也会被释放,所以这种情况我认为不可能会出现,检查代码逻辑吧。

你说的字典是实体类吗

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/861664
  • 这篇博客也不错, 你可以看下JAVA线程池是什么,能带来什么好处,线程阻塞队列有哪些怎么用,饱和策略又是什么,运行机制是什么
  • 同时,你还可以查看手册:java-集合 - 关于使用和扩展Java集合框架的课程。- 聚合操作 代表你对集合进行迭代,这使你能够编写更简洁和有效的代码,处理存储在集合中的元素。 -平行主义 中的内容
  • 除此之外, 这篇博客: java模拟简单的银行账户,可用于存取款,查询业务操作中的 java模拟简单的银行账户,可用于存取款,查询账户信息,银行查询当前客户数量操作 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    **
    本篇的内容关于:创建一个银行账户Account类,实现存款(deposit)、取(withDraw)和查询账户(infor),银行查询当前客户数量等功能,然后基于该类创建对象,模拟存取款和查询的基本操作。

    **
    ****创建一个银行账户类

    import java.util.Scanner;
    //创建一个银行账户类
    public class Account {
    private int id;// 账户的号码
    private String name;// 账户姓名
    private double balance = 0;// 账户的余额,默认为0
    static int count = 0;// 用于银行系统计算当前客户的数量
    //有参构造方法
    Account(int id, String name, double balance) {
    this.setId(id);
    this.setName(name);
    this.setBalance(balance);
    }
    //提供简单的操作入口
    public double getBalance() {
    return balance;
     }
     public void setBalance(double balance{
     this.balance = balance;
     }
     public int getId() {
     return id;
     }
     public void setId(int id) {
     this.id = id;
     }
     public String getName() {
      return name;
     }
     public void setName(String name) {
      this.name = name;
     }
     // 账户信息
     public void infor() {
    System.out.println("账户:" + id);
    System.out.println("姓名:" + name);
    System.out.println("余额:" + balance);
    }
    //取款(withDraw)操作
    public void withDraw() {
      Scanner balance = new Scanner(System.in);
      System.out.println("请输入你要提取的金额:");
    double money = balance.nextDouble();
    if (money > this.balance)
       System.out.println("你的余额不足");
       else
       this.balance = (this.balance - money);
       System.out.println("你的余额为:" + this.balance);
     }
    //存款(deposit)操作
    public void deposit() {
    Scanner balance = new Scanner(System.in);
      System.out.println("请输入你要存入的金额:");
      double money = balance.nextDouble();
      this.balance = (this.balance + money);
    System.out.println("你的余额为:" + this.balance);
     }
     //银行系统平台
     private void xitong() {
      boolean t = true;
    while (t) {
       Scanner num = new Scanner(System.in);
       System.out.println("请输入你的选择:");
       int choice = num.nextInt();
       switch (choice) {
       case 1:
        System.out.println("-----取款操作------");
        this.withDraw();
        break;
        case 2:
        System.out.println("-----存款操作------");
        this.deposit();
        break;
        case 3:
        System.out.println("-----账户信息------");
        this.infor();
        break;
        case 4:
        ++count;
        System.out.println("------欢迎下次光临------");
        t = false;
        break;
        default:
        System.out.println("你的选择有误!");
        break;
       }
       }}
    //一个静态方法getAccTotal,银行查看当前系统中账户数量(多少位客户)
     public static int getAccTotal() {
      return count;
     }
     }

    ****创建对象实现存取款,余额查询及银行查询客户数量操作

    public static void main(String[] args) {
    Account acc01 = new Account(33, "小米", 10000.0);
    Account acc02 = new Account(34, "小花", 20000.0);
    System.out.println("---欢迎进入银行账户操作系统---");
    System.out.println("---------1取款操作--------");
    System.out.println("---------2存款操作------------");
    System.out.println("---------3账户信息------------");
    System.out.println("---------4退出系统------------");
    acc01.xitong();
    acc02.xitong();
    System.out.println("此时有" + getAccTotal() + "名客户");
    }

    ****运行结果

    ---欢迎进入银行账户操作系统---
    ---------1取款操作--------
    ---------2存款操作------------
    ---------3账户信息------------
    ---------4退出系统------------
    //客户acc01
    请输入你的选择:1//取款操作
    -----取款操作------
    请输入你要提取的金额:
    200
    你的余额为:9800.0
    请输入你的选择:4//退出系统
    ------欢迎下次光临------
    //下一位客户acc02
    请输入你的选择:2
    -----存款操作------
    请输入你要存入的金额:
    1000
    你的余额为:21000.0
    请输入你的选择:3
    -----账户信息------
    账户:34
    姓名:小花
    余额:21000.0
    请输入你的选择:4
    ------欢迎下次光临------
    此时有2名客户

    希望对你有帮助,同时以上代码如有错误请各位指出。关注Me,咱们一起加油,驰骋大海,共同进步!

    在这里插入图片描述

  • 您还可以看一下 咕泡合作p5老师的Java软件设计模式精讲课程中的 用策略模式实现优惠促销业务场景小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    回答:

    Java中的字典文件指的是包含了单词、短语或其他一系列信息的文本文件,可能是txt、csv、xml或其他格式的文件。在读取过程中,不会对字典文件进行修改,因此可以不必在读取之前对字典文件进行初始化或清除缓存。

    在读取字典文件时,可以使用Java中的FileReader和BufferedReader类。具体步骤如下:

    1. 创建一个File对象,指定待读取的文件路径。
    File file = new File("filepath");
    
    1. 创建一个FileReader对象,将File对象传入构造方法中。
    FileReader reader = new FileReader(file);
    
    1. 创建一个BufferedReader对象,将FileReader对象传入构造方法中。
    BufferedReader br = new BufferedReader(reader);
    
    1. 循环读取文件中的每一行内容,并进行处理。
    String line;
    while ((line = br.readLine()) != null) {
        // TODO: 进行处理
    }
    
    1. 关闭BufferedReader和FileReader对象。
    br.close();
    reader.close();
    

    需要注意的是,在读取之前需要确保文件存在,并且读取过程中可能会遇到IOException异常,可能需要进行异常处理。

    如果字典文件中存在重复的内容,可能会影响程序的正确性,例如在查找单词含义时返回的结果可能不唯一。因此,在处理字典文件时需要注意去重或选择合适的数据结构存储数据,比如使用HashSet或HashMap。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^