Здравствуйте. В настоящее время я использую систему Java FileWriter
с HashTable
для воссоздания декодированного сообщения. Я пытаюсь воссоздать декодированное сообщение, просматривая файл, содержащий все пары кодированных значений ключа (10111 = C), и записывая в текстовый файл
Мои кодированные пары KV
https://github.com/DijonLee/Project2/blob/master/freq.txt
prop.load(new FileReader(freqFile));
for (Map.Entry entry : prop.entrySet()) {
// map.put((String) entry.getKey(), (String) entry.getValue());
}
BufferedReader in = new BufferedReader(new FileReader(freqFile));
String line;
while ((line = in.readLine()) != null) {
// System.out.println(line); // ensure my line breaks are okay
if (line.contains("=")) {
String[] strings = line.split("=");
map.put(strings[0], (strings[1]));
}
}
Здесь я пытаюсь «расшифровать» мой текст на основе пар KV
FileReader inputStream = null;
inputStream = new FileReader("encoded.txt");
FileWriter outputStream = null;
outputStream = new FileWriter("ur_dec.txt");
int c;
String decoder = "";
String key = "";
while ((c = inputStream.read()) != -1) { // loop through file
char cToChar = (char) c; // get char
decoder += cToChar; // build string
if (map.containsValue(decoder)) {
for (Map.Entry entry : map.entrySet()) {
if (decoder.equals(entry.getValue())) {
key = (String) entry.getKey();
decoder = "";
outputStream.write(key); //
}
break; // breaking because its one to one map
}
}
}
Хотя моя программа работает, она, кажется, удаляет табуляции и другие пробелы, которые я хотел бы сохранить, пока я кодирую и декодирую их, и я не слишком уверен, почему