import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class HeaderMetadataAggregator {
public static void main(String[] args) {
if (args.length != 1) {
System.out.println("Usage: java HeaderMetadataAggregator <file_path>");
return;
}
String filePath = args[0];
Map<String, Integer> headerCounts = new HashMap<>();
Map<String, String> headerValues = new HashMap<>();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
// Split the line by comma (or other delimiter) to extract header and value
String[] parts = line.split(",");
if (parts.length >= 2) {
String header = parts[0].trim(); // Extract header and remove leading/trailing spaces
String value = parts[1].trim(); // Extract value and remove leading/trailing spaces
// Update header counts
headerCounts.put(header, headerCounts.getOrDefault(header, 0) + 1);
//Store header values
headerValues.put(header, value);
} else {
System.err.println("Skipping invalid line: " + line); //Handle invalid lines
}
}
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
return;
}
//Print the results
System.out.println("Header Counts:");
for (Map.Entry<String, Integer> entry : headerCounts.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
System.out.println("\nHeader Values:");
for (Map.Entry<String, String> entry : headerValues.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
Add your comment