Программа чтения файлов не может найти файл

#java #eclipse #file #filereader #filewriter

Вопрос:

У меня есть текстовый файл, который включает в себя словарь для приведенной ниже программы. По какой-то причине «Word.txt» не удается найти даже его расширение файла в eclipse, которое я также пытался сделать в блокноте, но у меня его нет. Надеюсь, кто-нибудь сможет мне в этом помочь, спасибо.

Word.txt файл содержит:

 algebra<===>a generalization of arithmetic in which letters representing numbers are combined according to the rules of arithmetic
book<===>a set of written sheets of skin or paper or tablets of wood or ivory
calculus<===>the mathematical methods comprising differential and integral calculus
data<===>factual information such as a basis for reasoning, discussion, or calculation
grammar<===>a system of rules that defines the grammatical structure of a language
information<===>knowledge obtained from investigation, study, or instruction
language<===>the words, their pronunciation, and the methods of combining them used and understood by a community
laptop<===>a portable microcomputer having its main components (such as processor keyboard, and display screen) integrated into a single unit capable of battery-powered operation
metadata<===>data that provides information about other data
 

Ошибка в том, что:

 Exception in thread "main" java.io.FileNotFoundException: Word.txt 
   (The system cannot find the file specified)

    at java.base/java.io.FileInputStream.open0(Native Method)
    at java.base/java.io.FileInputStream.open(FileInputStream.java:212)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:154)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:109)
    at java.base/java.io.FileReader.<init>(FileReader.java:60)
    at PL1.main(PL1.java:18)
 

код:

 import java.io.*;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class PL1 {

    public static void main(String[] args) throws FileNotFoundException {
        Scanner input = new Scanner(System.in);
        File file = new File("Word.txt");
        FileReader R = new FileReader("Word.txt");
        BufferedReader Br = new BufferedReader(R);
        BufferedReader In = null;
        In = new BufferedReader(new FileReader("Word.txt"));
        System.out.println(new File(".").getAbsoluteFile());
        int choices;
        int number;
        int x = 1;
        String s = "";
        String read = null;

        try {
            for (int i = 0; i <= 10; i  ) {
                System.out.println("--------------SELECT FROM THE CHOICES--------------");
                System.out.println("1 - Show all records");
                System.out.println("2 - Search for definition");
                System.out.println("3 - Add record");
                System.out.println("4 - Delete record");
                System.out.println("5 - Delete all records");
                System.out.println("6 - Exit");
                System.out.println("---------------------------------------------------");
                choices = input.nextInt();
                switch (choices) {
                    case 1: 
                        x = 1;
                        System.out.println("--------------------ALL RECORDS--------------------");

                        try {
                            while ((read = In.readLine()) != null) {
                                String[] splitted = read.split("<===>");
                                for (String part : splitted) {
                                    System.out.print(x     ". "   part   "t n");
                                }
                            }

                            System.out.println("< Records found: "   x / 2   " >");

                        } catch (IOException e) {
                            System.out.println("There was a problem: "   e);
                            e.printStackTrace();
                        }
                        break;

                    case 2:
                        String searchword;
                        System.out.println("-------------------SEARCH RECORD-------------------");
                        System.out.println("Word:");
                        searchword = input.nextLine();

                        try {
                            while ((s = Br.readLine()) != null) {
                                String[] splitted = s.split("<===>");
                                number = splitted.length;
                                for (int e = 0; e < splitted.length; e  = 2) {
                                    for (int j = 1; j < splitted.length; j  = 2) {
                                        if (splitted[e].equals(searchword)) {
                                            splitted[e] = splitted[j];
                                            System.out.println("-"   splitted[e]);
                                        }
                                    }
                                }
                            }
                        } catch (IOException e) {
                            System.out.println("There was a problem: "   e);
                            e.printStackTrace();
                        }
                        break;

                    case 3:
                        String word;
                        String definition;
                        System.out.println("--------------------ADD RECORD--------------------");
                        System.out.println("Word:");
                        word = input.nextLine();
                        word = input.nextLine();
                        System.out.println("Definition:");
                        definition = input.nextLine();

                        FileWriter fw = new FileWriter("Word.txt", true);
                        PrintWriter out = new PrintWriter(fw);
                        out.print(" n"   word   "<===>"   definition);
                        out.close();
                        System.out.println("< Record has been saved successfully. >");
                        break;

                    case 6:
                        System.out.println("Thank You!");
                        return;

                    default:
                        System.out.println("Invalid Input!");
                        break;
                }
            } 
        } catch (Exception e) {
            System.out.println("Invalid Input!");
            return;
        }
    }
}
 

Комментарии:

1. Каков полный путь к файлу Word.txt ?

2. Я поместил его на рабочий стол и на ресурсы

3. Я не спрашивал, куда вы положили файл, я спросил, каков полный путь. Вы хотите сказать, что есть два файла с именами Word.txt в двух разных папках? Путь к Desktop папке C:UsersUSERDesktop — это то, где USER находится ваше имя пользователя. Предполагая , что ваше имя пользователя Francis , путь будет C:UsersFrancisDesktop таким, что означает, что путь к файлу будет таким C:UsersFrancisDesktopWord.txt . Это правильно?

Ответ №1:

Это потому, что вы не даете программе весь путь к этому «Word.txt», т. е.: допустим, файл находится на вашем рабочем столе, тогда вам следует сделать что-то вроде:

 FileReader R = new FileReader("CYourUserDesktopWord.txt");
 

Ответ №2:

Итак, ваша главная проблема здесь в том, что ваш путь. Если Word.txt находится внутри папки src, то вы должны сказать так:- FileReader reader = new FileReader("src\if any another folder\Word.txt"); Если она находится прямо за пределами папки src, то вы можете использовать Word.txt ее в качестве пути, если путь совершенно другой, то просто напишите там полный путь

Ответ №3:

Пожалуйста, проверьте путь к вашему файлу. Если ваш файл находится внутри какого-либо пакета (например, src или чего-то подобного) вашего проекта или находится вне папки вашего проекта, то будет выдано исключение IOException. В таких случаях вам необходимо указать полный путь в программе чтения файлов

 FileReader fr = new FileReader("C:/user/demo-project/src/word.txt")
 

или

 FileReader fr = new FileReader("C:/user/desktop/word.txt")
 

Если вы не хотите передавать полный путь к файлу, вам нужно поместить файл непосредственно в папку проекта.

См. ссылку на изображение ниже: Читатель файлов