Java Encoding Decoding by Frequency

    Design a class Named CryptGram.java with the following requirements:Data Members: a Letter(it is provided) array named orderedFrequency to store frequency of the 26 alphabetic letters. Methods: createLetterFrequencyFromFile(File file) getFrequencyByChar(char letter) encode(String textToBeEncoded) decode(String textToBeDecoded)The method: createLetterFrequencyFromFile, reads a file and creates the letter frequency, the letter frequency array MUST by sorted by frequency, for example, the first three Letter elements in the array may look like: d[2], r[5], a[6], which means d appears in the file twice, r five time, and a six times. If the frequencies are ties, then being ordered by alphabetic order. For instance, e[9] and c[9], c[9] should be placed before e[9].The method: getFrequencyByChar, returns the number of times the char passed as argument appears in the fileThe method: encode, encodes the String and returns encoded String. The text to be encoded is encrypted as follows: each character in the text will be encrypted to the character in the letter frequency array: orderedFrequency. For example, letter a or A will be encrypted to the letter of the first element in the orderedFrequency array. The letter z or Z will be encrypted to the letter of the last element in the orderedFrequency array. The method: decode, reverse the encode process and decrypt the text (ignore cases)A demo program is provided for testing. To run the demo, click on the FrequencyEncryptDriver.class, provide file name and text to be encrypted in the argument list. For example *cryptgram.txt javaNote: class name, variable name, and method names MUST be the same as specified.

                                                                                                                                      Order Now