Я беру входной файл и выходной файл от пользователя и пытаюсь записать в выходной файл метод main и towerOfHanoiMoves. Я пытался передать выходную переменную в качестве параметра методу towerOfHanoiMoves, но получал ошибку.
Ошибка, которую я получаю:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: Unhandled exception type IOException
at TowerofHanoiRecursive.towerOfHanoiMoves(TowerofHanoiRecursive.java:72)
at TowerofHanoiRecursive.main(TowerofHanoiRecursive.java:41)
Есть ли способ заставить эту работу, где я могу записать в один и тот же выходной файл из двух отдельных методов?
Я пытался использовать PrintWriter, но это дало мне то же самое.
Я также попытался очистить и закрыть outStream в методе towerOfHanoiMoves, но это тоже не сработало. Я также импортировал все необходимые файлы java.io, но по какой-то причине они здесь не отображаются.
public class TowerofHanoiRecursive{
public static void main(String[] args) throws IOException, EmptyFile,
FileNotFoundException{
int n; //number of disks
String rodLeft = "A", rodRight = "C", rodMiddle = "B";
FileReader inputStream = null;
FileWriter outputStream = null;
BufferedReader str = null;
try {
outputStream = new FileWriter(args[1]); // output file
inputStream = new FileReader(args[0]); // input file
str = new BufferedReader(inputStream);
String nextLine;
File newFile = new File(args[0]);
if (newFile.length()==0) { //Tests if input file is empty
//if file is empty, the EmptyFile exception will be thrown
throw new EmptyFile("Input file is empty");
}
while ((nextLine = str.readLine()) != null) {
outputStream.write("----------------------------------------"
+ "------------------------\n");
outputStream.write("Number of Disks in Starting Tower = "
+ nextLine);
n = Integer.parseInt(nextLine);
towerOfHanoiMoves(n, rodLeft, rodRight, rodMiddle,
outputStream);
}
}catch (FileNotFoundException e) {
outputStream.write("Input file not found.);
outputStream.flush();
if (outputStream != null) outputStream.close();
}catch (EmptyFile e) {
outputStream.write(e.getMessage());
outputStream.flush();
if (inputStream != null) inputStream.close();
if (outputStream != null) outputStream.close();
str.close();
} finally {
outputStream.write("");
outputStream.write("\n\nSuccess!);
outputStream.flush();
if (inputStream != null) inputStream.close();
if (outputStream != null) outputStream.close();
str.close();
}
}
public static void towerOfHanoiMoves(int n, String leftRod, String
rightRod, String MidRod, FileWriter outStream) {
if (n == 1) {
outStream.write("Move disk 1 from ....");
}
}
}