将文本文件读入 Java HashMap

javaobject oriented programmingprogramming更新于 2024/8/17 1:15:00

HashMap 是一个用于实现 Map 接口的类。它将其元素存储在键值对中。Key 是一个用于获取和接收与其关联的值的对象。它可以访问 Map 接口的所有方法,它没有自己的任何其他方法。不允许重复的值,尽管我们可以存储空值和键。在本文中,我们将尝试将本地文本文件的内容读入 Java HashMap。

将文本文件读入 Java HashMap 的 Java 程序

HashMap 的一般语法如下 -

语法

HashMap<TypeOfKey, TypeOfValue> nameOfMap = new HashMap<>();

我们的第一个任务是创建一个文本文件(扩展名:.txt),并使用您选择的任何合适的名称。将以下内容添加到您的文件中 -

Milk:55
Bread:15
Rice:65
Egg:20

您的文件的格式必须与上面的文本相同。

方法

  • 导入"java.util"包以启用 HashMap 类和"java.io"进行文件输入/输出。

  • 将文件的位置存储在 String 类型变量中。

  • 创建一个返回类型为 Map 的方法,以 HashMap 的形式读取和返回文本文件的内容。

  • 在此方法中,创建一个 HashMap 并定义一个 try 和 catch 块,以便我们可以处理"FileNotFoundException"和"IOException"。

  • 现在,在尝试将文件的路径存储在"File"类对象中,然后使用"BufferedReader"类的对象读取文件的内容。

  • 使用内置方法"readLine()"进行一段时间循环,读取文件的所有内容,同时我们将使用":"作为分隔符将内容分成几部分。

  • 在 if 块中,我们将检查"item"和"price"的值是否为空。如果不为空,则使用"put()"方法将值存储在 Map 中。

  • 在 main() 方法中,创建一个新的 Map,并通过调用方法"copyFile()"将返回的值存储在其中。

  • 使用"getKey()"和"getValue()"方法,我们将检索并打印详细信息。

示例

import java.io.*;
import java.util.*;
public class ReadTxt {
   final static String sharePath = "D:/Java Programs/Map content.txt";
   // 复制文件的方法
   public static Map<String, Integer> copyFile() {
     // Create a map  
     HashMap<String, Integer> getInfo = new HashMap<String, Integer>();
     try {
        // 将文件路径存储在文件对象中
        File filename = new File(sharePath);
        // 给定文件的 BufferedReader 对象
        BufferedReader bufrd = new BufferedReader( new FileReader(filename) );
        // 存储文件内容
        String info = null;
        // 读取给定文件
        while ( (info = bufrd.readLine()) != null ){
            // 按分隔符拆分每行内容
            String[] values = info.split(":");
            // 第一部分是 item,第二部分是 price
            String item = values[0].trim();
            // 将字符串 price 转换为整数
            Integer price = Integer.parseInt( values[1].trim() );
            // 将内容存储到哈希映射中
            if( !item.equals("") && !price.equals("") )
            getInfo.put(item, price);
       	}       
     } catch(Exception exp) { 
       // to handle the exception
       System.out.println(exp);
     }
     return getInfo; 
     // return result 
   }
   public static void main(String[] args) {
    // 将内容复制到新地图
    Map<String, Integer> newMap = copyFile();
    // 打印详细信息
    for(Map.Entry<String, Integer> print : newMap.entrySet()) {
        System.out.println( print.getKey() + " : " + print.getValue() );
    }
   } 
}

输出

Egg : 20
Milk : 55 
Bread : 15
Rice : 65

结论

HashMap 类和 Map 接口是 Collection Framework 的一部分。该集合允许将对象分组到一个单元中。在本文中,我们首先定义 HashMap 类,然后讨论一个将文本文件读入 Java HashMap 的 Java 程序。


相关文章