Пожалуйста, дважды проверьте свои данные об ошибке. Возможно, вы видели что-то вроде ошибки ниже. На самом деле программа не ищет файл "C:\Users\home\Documents\NetBeansProjects\MyDatabase\C:\Users\home\Desktop\DbWord.txt"
, он пытается найти файл "C:\Users\home\Desktop\DbWord.txt"
, который не существует на вашем компьютере. Вы видите "C:\Users\home\Documents\NetBeansProjects\MyDatabase\C:\Users\home\Desktop\DbWord.txt"
вместе с ошибкой, потому что вы уже использовали оператор System.out.println(FILE_PATH.getAbsoluteFile());
в своем коде.
false
Exception in thread "main" java.io.FileNotFoundException: C:\Users\home\Desktop\DbWord.txt (The filename, directory name, or volume label syntax is incorrect)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
C:\Users\home\Documents\NetBeansProjects\MyDatabase\C:\Users\home\Desktop\DbWord.txt
at com.stackoverflow.answer.SimpleFileHelper.main(SimpleFileHelper.java:17)
Надеюсь, теперь вы поняли.
Есть три основных шанса, в которых может быть выброшен FileNotFoundException
.
- Именованный файл не существует.
- Именованный файл фактически является каталогом, а не файлом.
- Именованный файл не может быть открыт для чтения по какой-либо причине.
Первые две причины вряд ли основаны на вашем описании, пожалуйста, проверьте третий пункт, используя метод file.canRead()
.
Если выше тест возвращает истину, я подозреваю следующее:
Возможно, вы забыли явно выбросить или поймать потенциальное исключение (т.е. FileNotFoundExcetion
). Если вы работаете в среде IDE, вы должны получить жалобу от компилятора. Но я подозреваю, что вы не запускали свой код в такой среде IDE.
Попробуйте следующий код и посмотреть, если исключение уедет:
package com.stackoverflow.answer;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class SimpleFileHelper {
public static void main(String[] args) throws FileNotFoundException {
File FILE_PATH = new File("C:/Users/home/Desktop/DbWord.txt");
System.out.println(FILE_PATH.exists());
System.out.println(FILE_PATH.getAbsoluteFile());
FileInputStream fIn = new FileInputStream(FILE_PATH);
Scanner reader = new Scanner(fIn);
}
}
@Ofir вопрос не ясно – dex
@dex эй, я пытаюсь вытащить из файла, место в: C: \\ Пользователи \\ home \\ Desktop \\ DbWord.txt , но prograam пишет, что файл не найден, и он пишет мне этот файл: C: \ Users \ home \ Documents \ NetBeansProjects \ MyDatabase \ C: \ Users \ home \ Desktop \ DbWord.txt Я имею в виду программу, пытающуюся выполнить поиск файла по этому пути .. почему? – Ofir
@dex я отредактировал свою команду. спасибо :) – Ofir