Почему FileNotFoundException ⇐ JAVA
-
Anonymous
Почему FileNotFoundException
Ошибка:
Введите путь к файлу блокнота: С: Файл блокнота сохранен в папке «C:». Введите имя файла блокнота: текст Имя файла блокнота: «text.txt». Произошла ошибка. java.io.FileNotFoundException: C:text.txt (Не обеспечить поиск указанного файла) в java.base/java.io.FileInputStream.open0 (собственный метод) в java.base/java.io.FileInputStream.open(FileInputStream.java:213) в java.base/java.io.FileInputStream.(FileInputStream.java:152) в java.base/java.util.Scanner.(Scanner.java:645) в Notepad.readContent(Notepad.java:59) в Блокноте.(Notepad.java:21) в Main.main(Main.java:58) Выберите действие: Читать: 1 Напишите: 2 Удалить контент: 3 Получить имя файла: 4 Получить путь к файлу: 5 Возможные нарушители:
private static String readContent() { попробуйте (Сканер fileReader = новый Сканер(файл)) { в то время как (fileReader.hasNextLine()) { Строковая строка = fileReader.nextLine(); stringBuilder.append(line).append(System.lineSeparator()); } } catch (IOException e) { System.out.println("Произошла ошибка."); е.printStackTrace(); } вернуть stringBuilder.toString(); } и:
public Notepad (String userFilePath, String userFileName) { FilePath = userFilePath; имя_файла = имя_файла_пользователя; файл = новый файл (filePath, имя файла); мойFileContent = readContent(); } Если вы считаете, что проблема связана с именем файла или путем, вот установщики:
public static void setFilePath() { System.out.println("Введите путь к файлу блокнота:"); filePath = scan.nextLine(); в то время как (истина) { если (pathExists(filePath)) { System.out.println("Файл блокнота сохранен в папке " + "\"" + filePath + "\"."); перерыв; } еще { System.out.println("Путь " + "\"" + filePath + "\"" + " не существует."); System.out.println("Введите путь к файлу блокнота: "); filePath = scan.nextLine(); } } } public static void setFileName() { System.out.println("Введите имя файла блокнота:"); имя_файла = scan.nextLine() + ".txt"; если (fileNameIsValid(fileName) == true) { System.out.println("Имя файла блокнота: " + "\"" + имя_файла + "\"."); } } и:
public static void setFileName() { System.out.println("Введите имя файла блокнота:"); имя_файла = scan.nextLine() + ".txt"; если (fileNameIsValid(fileName) == true) { System.out.println("Имя файла блокнота: " + "\"" + имя_файла + "\"."); } } Проблема появляется только после того, как я закончу писать, а до этого все работает правильно. Вероятно, причина проблемы либо в имени файла и пути к нему, либо в методе readContent().
Я пытался использовать метод .write(), и он работал правильно, пока я не закончил писать.
Ошибка:
Введите путь к файлу блокнота: С: Файл блокнота сохранен в папке «C:». Введите имя файла блокнота: текст Имя файла блокнота: «text.txt». Произошла ошибка. java.io.FileNotFoundException: C:text.txt (Не обеспечить поиск указанного файла) в java.base/java.io.FileInputStream.open0 (собственный метод) в java.base/java.io.FileInputStream.open(FileInputStream.java:213) в java.base/java.io.FileInputStream.(FileInputStream.java:152) в java.base/java.util.Scanner.(Scanner.java:645) в Notepad.readContent(Notepad.java:59) в Блокноте.(Notepad.java:21) в Main.main(Main.java:58) Выберите действие: Читать: 1 Напишите: 2 Удалить контент: 3 Получить имя файла: 4 Получить путь к файлу: 5 Возможные нарушители:
private static String readContent() { попробуйте (Сканер fileReader = новый Сканер(файл)) { в то время как (fileReader.hasNextLine()) { Строковая строка = fileReader.nextLine(); stringBuilder.append(line).append(System.lineSeparator()); } } catch (IOException e) { System.out.println("Произошла ошибка."); е.printStackTrace(); } вернуть stringBuilder.toString(); } и:
public Notepad (String userFilePath, String userFileName) { FilePath = userFilePath; имя_файла = имя_файла_пользователя; файл = новый файл (filePath, имя файла); мойFileContent = readContent(); } Если вы считаете, что проблема связана с именем файла или путем, вот установщики:
public static void setFilePath() { System.out.println("Введите путь к файлу блокнота:"); filePath = scan.nextLine(); в то время как (истина) { если (pathExists(filePath)) { System.out.println("Файл блокнота сохранен в папке " + "\"" + filePath + "\"."); перерыв; } еще { System.out.println("Путь " + "\"" + filePath + "\"" + " не существует."); System.out.println("Введите путь к файлу блокнота: "); filePath = scan.nextLine(); } } } public static void setFileName() { System.out.println("Введите имя файла блокнота:"); имя_файла = scan.nextLine() + ".txt"; если (fileNameIsValid(fileName) == true) { System.out.println("Имя файла блокнота: " + "\"" + имя_файла + "\"."); } } и:
public static void setFileName() { System.out.println("Введите имя файла блокнота:"); имя_файла = scan.nextLine() + ".txt"; если (fileNameIsValid(fileName) == true) { System.out.println("Имя файла блокнота: " + "\"" + имя_файла + "\"."); } } Проблема появляется только после того, как я закончу писать, а до этого все работает правильно. Вероятно, причина проблемы либо в имени файла и пути к нему, либо в методе readContent().
Я пытался использовать метод .write(), и он работал правильно, пока я не закончил писать.
Мобильная версия