java.Ио.IOException: система не может найти путь, указанный при написании текстового файла

Я пишу программу, в которой пытаюсь создать новый текстовый файл в текущем каталоге, а затем написать в него строку. Однако, при попытке создать файл, этот блок кода:

//Create the output text file.
File outputText = new File(filePath.getParentFile() + "Decrypted.txt");
try
{
    outputText.createNewFile();
}
catch (IOException e)
{
    e.printStackTrace();
}

дает мне это сообщение об ошибке:

java.io.IOException: The system cannot find the path specified
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(Unknown Source)
    at code.Crypto.decrypt(Crypto.java:55)
    at code.Crypto.main(Crypto.java:27)

из-за этого я не могу записать в файл, потому что он, естественно, не существует. Что я здесь делаю не так?

3 ответов


Если вы уже работаете с классом File, рассмотрите возможность использования его полного потенциала вместо того, чтобы делать половину работы самостоятельно:

File outputText = new File(filePath.getParentFile(), "Decrypted.txt");

каково значение filePath.getParentFile()? Какую операционную систему вы используете? Возможно, было бы лучше объединить оба пути независимым от системы способом, например:

filePath.getParentFile() + File.separator + "Decrypted.txt"

Он должен быть создан как брат файла, на который указывает filePath.

например, если

File filePath = new File("C:\\Test\\a.txt");

затем он должен быть создан в Test dir.