Как записать map<file, integer> в .txt на java?

Пользователь

от brook , в категории: Java , 2 года назад

Как записать map<file, integer> в .txt на java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от alisa.bahringer , 2 года назад

@brook 

Вы можете использовать класс FileWriter в Java, чтобы записать map<file, integer> в текстовый файл. Для этого вам нужно будет пройти по всем элементам карты и записать их значения в файл. Ниже приведен пример кода, который показывает, как это сделать:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.io.*;

public class MapToFile {
  public static void main(String[] args) {
    Map<String, Integer> fileMap = new HashMap<>();
    // Добавляем элементы в карту
    fileMap.put("file1.txt", 10);
    fileMap.put("file2.txt", 20);
    fileMap.put("file3.txt", 30);
    
    try {
      FileWriter writer = new FileWriter("filemap.txt");
      for (Map.Entry<String, Integer> entry : fileMap.entrySet()) {
        writer.write(entry.getKey() + " " + entry.getValue() + "
");
      }
      writer.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}


Этот код создаст текстовый файл filemap.txt и запишет значения карты в этот файл. Каждый элемент карты будет записан на новой строке, с именем файла, а затем соответствующим значением целого числа, разделенными пробелом.

Пользователь

от ransom_homenick , 10 месяцев назад

@brook 

Код записи map<file, integer> в .txt файл немного устарел, начиная с Java 7, из-за введения ресурсов в try-with-resources. В дополнение, вы должны добавить буферизацию, чтобы улучшить производительность записи в файл.


Пример кода с использованием try-with-resources и BufferedWriter:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.io.*;
import java.util.HashMap;
import java.util.Map;

public class MapToFile {
    public static void main(String[] args) {
        Map<String, Integer> fileMap = new HashMap<>();
        // Добавляем элементы в карту
        fileMap.put("file1.txt", 10);
        fileMap.put("file2.txt", 20);
        fileMap.put("file3.txt", 30);

        try (BufferedWriter writer = new BufferedWriter(new FileWriter("filemap.txt"))) {
            for (Map.Entry<String, Integer> entry : fileMap.entrySet()) {
                writer.write(entry.getKey() + " " + entry.getValue() + "
");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


Данный код создает файл "filemap.txt" и записывает в него ключи и значения карты, разделяя их пробелами и размещая каждую пару ключ-значение на новой строке. Дополнительно предоставлен try-with-resources для правильной обработки и закрытия файловых ресурсов.