Почему моя программа только зацикливается на исключении File Not Found? - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь зашифровать и расшифровать файл, переходя на одну букву вверх для шифрования и вниз на букву при расшифровке.Тем не менее, каждый раз, когда я запускаю программу, она просто подсказывает мне «Файл не найден» независимо от того, какой файл я даю в качестве входных данных.Что я делаю неправильно?Любая помощь или предложения будут великолепны.Ниже мой код: -

import java.io.File;
import java.util.Scanner;
import java.io.PrintWriter;
import java.io.FileNotFoundException;
import java.util.ArrayList;

public class Mission09
{
public static void main (String[]args)
{
Scanner in = new Scanner (System.in);
File f;
Scanner fileIn;
PrintWriter fileOut;
PrintWriter fileOutDecrypt;

String fileName = "";
String userAnswer = "";
String line = "";

  try
{
  //Get file name from the user
  System.out.println ("Please enter the name of the file.");
  fileName = in.nextLine ();

  //Get user input for encryption or decryption
  System.out.println ("Would you like to encrypt or decyrpt the file?");
  userAnswer = in.nextLine ();

  //Build the File and attach a Scanner to it
  f = new File (fileName);
  fileIn = new Scanner (f);

  //Loop through the file
  if (userAnswer.equalsIgnoreCase ("Encrypt"))
{
  fileOut = new PrintWriter ("Encrypted.txt");

  while (fileIn.hasNextLine ())
    {
      line = fileIn.nextLine ();

   for (int i = 0; i < line.length (); i++)
    {
      Character c = ' ';
      char ch = line.charAt (i);

      if (c.isLetter (ch))
        {
          if (ch == 'z')
              ch = 'a';

          else
              ch++;
        }

      fileOut.print(ch + " ");
    }

    }

}

  if (userAnswer.equalsIgnoreCase ("Decrypt"))
{
  fileOut = new PrintWriter ("Decrypted.txt");

  while (fileIn.hasNextLine())
    {
      line = fileIn.nextLine();

      for (int i = 0; i < line.length (); i--)
    {
      Character x = ' ';
      char cha = line.charAt (i);

      if (x.isLetter (cha))
        {
          if (cha == 'z')
              cha = 'a';

          else
              cha--;

       fileOut.print(cha + " ");
        }

      fileOut.close();
    }
    }

}

}

catch (FileNotFoundException e)
{
     System.out.println("Sorry that file cannot be found. Please enter another file.");
}

}

}

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Пожалуйста, укажите абсолютный путь и полное имя файла с соответствующим расширением.Конечно, проблема в том, как вы указываете путь к файлу.

Я пытался использовать абсолютный путь, и тот же код отлично работает для меня.

пример из моего манежа: C:\code\WprkSpacePlaypen\Temp\src\abhijeet.txt

0 голосов
/ 13 ноября 2018

Введите полный путь к файлу.Это сработало для меня.Например: C:\Users\xxxxxxxxxx\Desktop\test.txt.

Также включает fileOut.close() в конце условия if для шифрования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...