#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")
Если вы не хотите передавать полный путь к файлу, вам нужно поместить файл непосредственно в папку проекта.
См. ссылку на изображение ниже: Читатель файлов