java.io.FileNotFoundException: Morse.txt (No such file or directory) \n java.base/java.io.FileInputStream.open(Native at java.base/java.io.FileInputStream.open(F... at Method) \n OUTPUT TOO LONG \t \t Test Case 2 Failed Show what's missing java.io.FileNotFoundException: Morse.txt (No such file or directory)\n java.base/java.io.FileInputStream.open(Native Method) \n \tat \t at java.base/java.io.FileInputStre... OUTPUT TOO LONG
JAVA
In the program dont use buffer reader, file reader, io exception, hashmap, map or scanner and please modify or create a new program ASAP BECAUSE hypergrade does not like the program down below and the progran does not pass all the test cases when I upload it to hypergrade. I have provided the correct test case as well as the failed test case as a screenshot. It must pass all the test cases because it says 0 out of 2 passed when I upload it to Hypergrade. The program must pass the test case when uploaded to Hypergrade. Thank you
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class MorseCodeConverter {
public static void main(String[] args) {
Map<String, String> morseCodeMap = readMorseCodeTable("Morse.txt");
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("Please enter the file name or type QUIT to exit:\n");
String fileName = scanner.nextLine().trim();
if (fileName.equalsIgnoreCase("QUIT")) {
break;
}
try {
String text = convertMorseCodeToText(fileName, morseCodeMap);
System.out.println(text);
} catch (IOException e) {
System.out.println("File '" + fileName + "' is not found.");
}
}
scanner.close();
}
private static Map<String, String> readMorseCodeTable(String fileName) {
Map<String, String> morseCodeMap = new HashMap<>();
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split("\\s+");
if (parts.length == 2) {
morseCodeMap.put(parts[1], parts[0]);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return morseCodeMap;
}
private static String convertMorseCodeToText(String fileName, Map<String, String> morseCodeMap) throws IOException {
StringBuilder result = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = reader.readLine()) != null) {
String[] morseWords = line.split("\\s{3,}");
for (String morseWord : morseWords) {
String[] morseLetters = morseWord.split("\\s+");
for (String morseLetter : morseLetters) {
if (morseCodeMap.containsKey(morseLetter)) {
result.append(morseCodeMap.get(morseLetter));
}
}
}
result.append("\n");
}
}
return result.toString().trim();
}
}
File data down below:
Morse.txt
0 -----
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
, --..--
. .-.-.-
? ..--..
A .-
B -...
C -.-.
D -..
E .
F ..-.
G --.
H ....
I ..
J .---
K -.-
L .-..
M --
N -.
O ---
P .--.
Q --.-
R .-.
S ...
T -
U ..-
V ...-
W .--
X -..-
Y -.--
Z --..
input1.txt
- .... . --- .-. .. --. .. -. .- .-.. --.- ..- . ... - .. --- -. --..--
-.-. .- -. -- .- -.-. .... .. -. . ... - .... .. -. -.- ..--..
.. -... . .-.. .. . ...- . - --- -... . - --- --- -- . .- -. .. -. --. .-.. . ... ... - --- -.. . ... . .-. ...- . -.. .. ... -.-. ..- ... ... .. --- -. .-.-.-
.- .-.. .- -. - ..- .-. .. -. --.
Test Case 1
input1.txtENTER
THEORIGINALQUESTION,\n
CANMACHINESTHINK?\n
IBELIEVETOBETOOMEANINGLESSTODESERVEDISCUSSION.\n
ALANTURING\n
Test Case 2
input2.txtENTER
File 'input2.txt' is not found.\n
Please re-enter the file name or type QUIT to exit:\n
quitENTER
Step by step
Solved in 4 steps with 7 images