📜  用Java将 HashMap 写入文本文件

📅  最后修改于: 2022-05-13 01:54:47.961000             🧑  作者: Mango

用Java将 HashMap 写入文本文件

Java中的 HashMap 类实现了 Serializable 接口,以便可以使用ObjectOutputStream将其对象写入或序列化到文件中。但是,它生成的输出文件不是人类可读的格式,并且可能包含垃圾字符。

序列化:将对象及其属性和内容写入文件的过程。它在内部将对象转换为字节流。

反序列化:它是从文件中读取对象及其属性以及对象内容的过程。

方法

  • 在下面的类中,我们将 HashMap 内容存储在 hashmap.ser 序列化文件中。
  • 一旦我们运行下面的代码,它就会生成一个 hashmap.ser 文件。该文件将在下一个类中用于反序列化。
  • hashmap.ser 序列化文件可以存储到任何位置,并描述它的位置,如下所示
  • 所以我们需要 Location 在其中写入 HashMap。
  • 因此,需要提供外部位置来存储 HashMap  
final static String outputFilePath = "F:/Serialisation/write.txt";

创建字符串键字符串值对的 HashMap

HashMap map = new HashMap();

创建文件对象:

File file = new File(outputFilePath);

使用文件对象,我们将使用函数BufferedWriter (File_Path)编写 HashMap 输入

bf = new BufferedWriter( new FileWriter(file));

然后最后关闭文件

bf.close();

写入文件

Java
// Java program to write HashMap to a file
  
import java.io.*;
import java.util.*;
  
class GFG {
  
    final static String outputFilePath
        = "F:/Serialisation/write.txt";
  
    public static void main(String[] args)
    {
  
        // create new HashMap
        HashMap map
            = new HashMap();
  
        // key-value pairs
        map.put("rohit", "one");
        map.put("Sam", "two");
        map.put("jainie", "three");
  
        // new file object
        File file = new File(outputFilePath);
  
        BufferedWriter bf = null;
  
        try {
  
            // create new BufferedWriter for the output file
            bf = new BufferedWriter(new FileWriter(file));
  
            // iterate map entries
            for (Map.Entry entry :
                 map.entrySet()) {
  
                // put key and value separated by a colon
                bf.write(entry.getKey() + ":"
                         + entry.getValue());
  
                // new line
                bf.newLine();
            }
  
            bf.flush();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        finally {
  
            try {
  
                // always close the writer
                bf.close();
            }
            catch (Exception e) {
            }
        }
    }
}


输出: