import java.io.*;
import java.util.*;
public class RuntimeEnvironmentDeduplicator {
private static final String INPUT_FILE = "runtime_env.txt";
private static final String OUTPUT_FILE = "deduplicated_runtime_env.txt";
private static final boolean DRY_RUN = true; // Set to false for actual deduplication
public static void main(String[] args) {
try {
List<String> lines = readLinesFromFile(INPUT_FILE);
List<String> deduplicatedLines = deduplicate(lines);
if (DRY_RUN) {
System.out.println("Dry Run: Would write deduplicated data to " + OUTPUT_FILE);
printDeduplicatedLines(deduplicatedLines);
} else {
writeLinesToFile(deduplicatedLines, OUTPUT_FILE);
System.out.println("Deduplication complete. Data written to " + OUTPUT_FILE);
}
} catch (IOException e) {
System.err.println("Error processing file: " + e.getMessage());
e.printStackTrace();
}
}
private static List<String> readLinesFromFile(String filename) throws IOException {
List<String> lines = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
String line;
while ((line = reader.readLine()) != null) {
lines.add(line);
}
}
return lines;
}
private static List<String> deduplicate(List<String> lines) {
Set<String> seen = new HashSet<>();
List<String> deduplicated = new ArrayList<>();
for (String line : lines) {
if (!seen.contains(line)) {
seen.add(line);
deduplicated.add(line);
}
}
return deduplicated;
}
private static void writeLinesToFile(List<String> lines, String filename) throws IOException {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filename))) {
for (String line : lines) {
writer.write(line);
writer.newLine();
}
}
}
private static void printDeduplicatedLines(List<String> lines) {
for (String line : lines) {
System.out.println(line);
}
}
}
Add your comment