Java语言读取文件以后再打开字典,字典的内容怎么保持和文件相同的顺序并且允许第一列重复

Java语言读取文件以后再打开字典,字典的内容怎么保持和文件相同的顺序并且允许第一列重复

TechWhizKid参考GPT回答:

LinkedHashMap来实现。

LinkedHashMap是Java中的一个具体实现类,它继承自HashMap,但还维护了一个双向链表来保持插入顺序。这使得它能够按照插入的顺序迭代元素,从而保持和文件中的顺序相同。

下面是一个示例代码,演示了如何读取文件、打开字典并保持顺序与文件相同的逻辑:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;

public class FileToDictionary {
    public static void main(String[] args) {
        String filePath = "path/to/your/file.txt"; // 文件路径

        try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
            Map<String, String> dictionary = new LinkedHashMap<>();

            String line;
            while ((line = reader.readLine()) != null) {
                // 解析每一行为字典条目
                // 假设每行以制表符或空格分隔键值对,可以根据实际情况进行修改
                String[] parts = line.split("\\s+", 2);
                if (parts.length == 2) {
                    String key = parts[0].trim();
                    String value = parts[1].trim();
                    dictionary.put(key, value);
                }
            }

            // 打印字典内容,按照文件顺序
            for (Map.Entry<String, String> entry : dictionary.entrySet()) {
                System.out.println(entry.getKey() + " -> " + entry.getValue());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上述示例代码中,用LinkedHashMap来存储字典条目,并在每次读取文件行时将键值对添加到dictionary中。然后用entrySet()方法按顺序迭代dictionary的条目,并打印出键和值。

,示例代码假设每行以制表符或空格分隔键值对,你可以根据实际情况修改该分隔符。同时,如果文件中的键(第一列)可以重复,使用LinkedHashMap将保留最后一次出现的键值对,因为后续的条目会覆盖先前的条目。如果你希望保留第一次出现的键值对,可以将示例代码中的LinkedHashMap替换为ArrayListLinkedList,并在每次读取到的条目后追加到列表中。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/1091909
  • 你也可以参考下这篇文章:【Java文件下载】如何让浏览器直接下载后端返回的图片,而不是直接打开
  • 同时,你还可以查看手册:java-学习Java语言 - 描述Java编程语言的基本概念和特点的课程。-类和对象》描述了如何编写创建对象的类,以及如何创建和使用对象。-更多关于课程的信息 中的内容
  • 除此之外, 这篇博客: 【JAVA企业级开发】在JAVA生产项目中的关于实现单文件上传功能模块,多文件上传功能模块的优化方法以及用户上传文件成功之后的自动给用户发送邮件提醒的实现过程中的 1前端 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2020/6/15
      Time: 0:14
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <!DOCTYPE html>
    <html>
    <head>
        <title>ProCute</title>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="css/style.css" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
    <body>
    <script language='Javascript'>
        <!--
        document.write(unescape('%09%3C%64%69%76%20%69%64%3D%22%77%72%61%70%70%65%72%22%3E%0A%09%09%3C%68%31%3E%43%6F%6D%70%61%6E%79%20%4E%61%6D%65%3C%2F%68%31%3E%20%3C%21%2D%2D%20%53%65%74%20%79%6F%75%72%20%63%6F%6D%70%61%6E%79%20%2F%20%77%65%62%73%69%74%65%20%6E%61%6D%65%20%2D%2D%3E%0A%09%09%3C%64%69%76%20%69%64%3D%22%66%6F%6C%6C%6F%77%22%3E%0A%09%09%09%3C%21%2D%2D%3C%73%70%61%6E%3E%46%6F%6C%6C%6F%77%20%75%73%3C%2F%73%70%61%6E%3E%2D%2D%3E%0A%09%09%09%3C%61%20%68%72%65%66%3D%22%68%74%74%70%3A%2F%2F%77%77%77%2E%66%61%63%65%62%6F%6F%6B%2E%63%6F%6D%22%3E%20%3C%21%2D%2D%20%53%65%74%20%79%6F%75%72%20%46%61%63%65%62%6F%6F%6B%20%55%52%4C%20%2D%2D%3E%0A%09%09%09%09%3C%64%69%76%20%69%64%3D%22%66%62%22%3E%3C%2F%64%69%76%3E%0A%09%09%09%3C%2F%61%3E%0A%09%09%09%3C%61%20%68%72%65%66%3D%22%68%74%74%70%3A%2F%2F%77%77%77%2E%74%77%69%74%74%65%72%2E%63%6F%6D%22%3E%20%3C%21%2D%2D%20%53%65%74%20%79%6F%75%72%20%54%77%69%74%74%65%72%20%55%52%4C%20%2D%2D%3E%0A%09%09%09%09%3C%64%69%76%20%69%64%3D%22%74%77%69%74%74%65%72%22%3E%3C%2F%64%69%76%3E%0A%09%09%09%3C%2F%61%3E%0A%09%09%09%3C%61%20%68%72%65%66%3D%22%68%74%74%70%3A%2F%2F%70%6C%75%73%2E%67%6F%6F%67%6C%65%2E%63%6F%6D%22%3E%20%3C%21%2D%2D%20%53%65%74%20%79%6F%75%72%20%47%6F%6F%67%6C%65%20%50%6C%75%73%20%55%52%4C%20%2D%2D%3E%0A%09%09%09%09%3C%64%69%76%20%69%64%3D%22%67%70%6C%75%73%22%3E%3C%2F%64%69%76%3E%0A%09%09%09%3C%2F%61%3E%0A%09%09%09%3C%61%20%68%72%65%66%3D%22%68%74%74%70%3A%2F%2F%77%77%77%2E%6C%69%6E%6B%65%64%69%6E%2E%63%6F%6D%22%3E%20%3C%21%2D%2D%20%53%65%74%20%79%6F%75%72%20%4C%69%6E%6B%65%64%69%6E%20%55%52%4C%20%2D%2D%3E%0A%09%09%09%09%3C%64%69%76%20%69%64%3D%22%6C%69%6E%6B%65%64%69%6E%22%3E%3C%2F%64%69%76%3E%0A%09%09%09%3C%2F%61%3E%0A%09%09%09%3C%61%20%68%72%65%66%3D%22%68%74%74%70%3A%2F%2F%77%77%77%2E%64%72%69%62%62%62%6C%65%2E%63%6F%6D%22%3E%20%3C%21%2D%2D%20%53%65%74%20%79%6F%75%72%20%44%72%69%62%62%62%6C%65%20%55%52%4C%20%2D%2D%3E%0A%09%09%09%09%3C%64%69%76%20%69%64%3D%22%64%72%69%62%62%62%6C%65%22%3E%3C%2F%64%69%76%3E%0A%09%09%09%3C%2F%61%3E%0A%09%09%3C%2F%64%69%76%3E%3C%21%2D%2D%20%65%6E%64%20%66%6F%6C%6C%6F%77%20%2D%2D%3E%0A%09%09%3C%64%69%76%20%69%64%3D%22%6F%70%70%73%22%3E%4F%70%70%73%21%20%54%68%69%73%20%73%69%74%65%20%69%73%20%63%75%72%72%65%6E%74%6C%79%20%75%6E%64%65%72%20%63%6F%6E%73%74%72%75%63%74%69%6F%6E%2E%3C%2F%64%69%76%3E%0A%09%09%3C%64%69%76%20%69%64%3D%22%62%6F%74%74%6F%6D%22%3E%0A%09%09%09%3C%64%69%76%20%63%6C%61%73%73%3D%22%6C%65%66%74%22%3E%0A%09%09%09%09%3C%68%32%3E%45%73%74%69%6D%61%74%65%64%20%74%69%6D%65%20%62%65%66%6F%72%65%20%6C%61%75%6E%63%68%3C%2F%68%32%3E%0A%09%09%09%09%3C%64%69%76%20%69%64%3D%22%63%6F%75%6E%74%64%6F%77%6E%22%3E%0A%09%09%09%09%09%3C%64%69%76%20%63%6C%61%73%73%3D%22%74%69%6D%65%42%6F%78%22%3E%0A%09%09%09%09%09%09%3C%64%69%76%20%63%6C%61%73%73%3D%22%64%61%79%73%22%3E%30%30%3C%2F%64%69%76%3E%0A%09%09%09%09%09%09%44%61%79%73%0A%09%09%09%09%09%3C%2F%64%69%76%3E%0A%09%09%09%09%09%3C%64%69%76%20%63%6C%61%73%73%3D%22%74%69%6D%65%42%6F%78%22%3E%0A%09%09%09%09%09%09%3C%64%69%76%20%63%6C%61%73%73%3D%22%68%6F%75%72%73%22%3E%30%30%3C%2F%64%69%76%3E%0A%09%09%09%09%09%09%48%6F%75%72%73%0A%09%09%09%09%09%3C%2F%64%69%76%3E%0A%09%09%09%09%09%3C%64%69%76%20%63%6C%61%73%73%3D%22%74%69%6D%65%42%6F%78%22%3E%0A%09%09%09%09%09%09%3C%64%69%76%20%63%6C%61%73%73%3D%22%6D%69%6E%75%74%65%73%22%3E%30%30%3C%2F%64%69%76%3E%0A%09%09%09%09%09%09%4D%69%6E%75%74%65%73%0A%09%09%09%09%09%3C%2F%64%69%76%3E%0A%09%09%09%09%09%3C%64%69%76%20%63%6C%61%73%73%3D%22%74%69%6D%65%42%6F%78%22%3E%0A%09%09%09%09%09%09%3C%64%69%76%20%63%6C%61%73%73%3D%22%73%65%63%6F%6E%64%73%22%3E%30%30%3C%2F%64%69%76%3E%0A%09%09%09%09%09%09%53%65%63%6F%6E%64%73%0A%09%09%09%09%09%3C%2F%64%69%76%3E%0A%09%09%09%09%3C%2F%64%69%76%3E%3C%21%2D%2D%20%65%6E%64%20%63%6F%75%6E%74%64%6F%77%6E%20%2D%2D%3E%0A%09%09%09%3C%2F%64%69%76%3E%3C%21%2D%2D%20%65%6E%64%20%6C%65%66%74%20%2D%2D%3E'));
        //-->
    </script>
    <div>
        <h2>每日打卡(:单词,:短文)</h2>
        <form action="${pageContext.request.contextPath}/Manyfileup" enctype="multipart/form-data" method="post" />
        <fieldset>
            <input type="file" name="files" multiple="multiple"/>
     <%--       <input type="file" name="files" multiple="multiple"/>--%>
            <button type="submit" name="submit">Submit</button>
        </fieldset>
        </form>
        <div id="message">
        </div><!-- end message -->
    </div><!-- end right -->
    <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script src="js/countdown.jquery.js"></script>
    <script language='Javascript'>
        <!--
        document.write(unescape('%09%3C%73%63%72%69%70%74%3E%0A%09%09%24%28%66%75%6E%63%74%69%6F%6E%28%29%20%7B%0A%09%09%09%24%28%27%23%63%6F%75%6E%74%64%6F%77%6E%27%29%2E%63%6F%75%6E%74%64%6F%77%6E%28%7B%64%61%74%65%3A%20%27%32%35%20%44%65%63%65%6D%62%65%72%20%32%30%31%38%20%30%30%3A%30%30%3A%30%30%27%7D%2F%2A%2A%2A%20%53%65%74%20%77%65%62%73%69%74%65%20%6C%61%75%6E%63%68%20%64%61%74%65%20%61%6E%64%20%74%69%6D%65%20%2A%2A%2A%2F%2C%20%66%75%6E%63%74%69%6F%6E%28%29%7B%0A%09%09%09%09%24%28%27%23%63%6F%75%6E%74%64%6F%77%6E%20%2E%64%61%79%73%27%29%2E%68%74%6D%6C%28%22%30%30%22%29%3B%0A%09%09%09%09%24%28%27%23%63%6F%75%6E%74%64%6F%77%6E%20%2E%68%6F%75%72%73%27%29%2E%68%74%6D%6C%28%22%30%30%22%29%3B%0A%09%09%09%09%24%28%27%23%63%6F%75%6E%74%64%6F%77%6E%20%2E%6D%69%6E%75%74%65%73%27%29%2E%68%74%6D%6C%28%22%30%30%22%29%3B%0A%09%09%09%09%24%28%27%23%63%6F%75%6E%74%64%6F%77%6E%20%2E%73%65%63%6F%6E%64%73%27%29%2E%68%74%6D%6C%28%22%30%30%22%29%3B%0A%09%09%09%7D%29%3B%0A%09%09%09%24%28%22%66%6F%72%6D%20%69%6E%70%75%74%22%29%2E%66%6F%63%75%73%28%66%75%6E%63%74%69%6F%6E%28%29%7B%0A%09%09%09%09%24%28%74%68%69%73%29%2E%63%73%73%28%22%62%61%63%6B%67%72%6F%75%6E%64%22%2C%20%22%23%62%34%64%63%62%61%22%29%3B%0A%09%09%09%7D%29%3B%0A%09%09%09%24%28%22%66%6F%72%6D%20%69%6E%70%75%74%22%29%2E%62%6C%75%72%28%66%75%6E%63%74%69%6F%6E%28%29%7B%0A%09%09%09%09%69%66%20%28%21%28%24%28%74%68%69%73%29%2E%76%61%6C%28%29%29%29%7B%0A%09%09%09%09%09%24%28%74%68%69%73%29%2E%63%73%73%28%22%62%61%63%6B%67%72%6F%75%6E%64%22%2C%20%22%75%72%6C%28%69%6D%61%67%65%73%2F%70%6C%61%63%65%68%6F%6C%64%65%72%2E%70%6E%67%29%20%6E%6F%2D%72%65%70%65%61%74%20%63%65%6E%74%65%72%20%23%62%34%64%63%62%61%22%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%29%3B%0A%09%09%7D%29%3B%0A%09%3C%2F%73%63%72%69%70%74%3E'));
        //-->
    </script>
    
    </body>
    </html>
    
  • 您还可以看一下 汪翠老师的java项目实战之欢乐斗地主游戏开发教程 毕业项目课程设计带源码课程中的 接收从服务器端群发回来的消息并添加地主牌小节, 巩固相关知识点

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