1. import java.io.BufferedReader;
  2. import java.io.FileReader;
  3. import java.io.IOException;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. public class HeaderMetadataAggregator {
  7. public static void main(String[] args) {
  8. if (args.length != 1) {
  9. System.out.println("Usage: java HeaderMetadataAggregator <file_path>");
  10. return;
  11. }
  12. String filePath = args[0];
  13. Map<String, Integer> headerCounts = new HashMap<>();
  14. Map<String, String> headerValues = new HashMap<>();
  15. try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
  16. String line;
  17. while ((line = reader.readLine()) != null) {
  18. // Split the line by comma (or other delimiter) to extract header and value
  19. String[] parts = line.split(",");
  20. if (parts.length >= 2) {
  21. String header = parts[0].trim(); // Extract header and remove leading/trailing spaces
  22. String value = parts[1].trim(); // Extract value and remove leading/trailing spaces
  23. // Update header counts
  24. headerCounts.put(header, headerCounts.getOrDefault(header, 0) + 1);
  25. //Store header values
  26. headerValues.put(header, value);
  27. } else {
  28. System.err.println("Skipping invalid line: " + line); //Handle invalid lines
  29. }
  30. }
  31. } catch (IOException e) {
  32. System.err.println("Error reading file: " + e.getMessage());
  33. return;
  34. }
  35. //Print the results
  36. System.out.println("Header Counts:");
  37. for (Map.Entry<String, Integer> entry : headerCounts.entrySet()) {
  38. System.out.println(entry.getKey() + ": " + entry.getValue());
  39. }
  40. System.out.println("\nHeader Values:");
  41. for (Map.Entry<String, String> entry : headerValues.entrySet()) {
  42. System.out.println(entry.getKey() + ": " + entry.getValue());
  43. }
  44. }
  45. }

Add your comment