Ответ 1
Я скопировал ваш код, и он работает нормально.
Я подозреваю, что у вас просто проблема с фактическим именем файла hello.txt, или вы работаете в неправильном каталоге. Рассмотрим проверку методом, предложенным @Eng.Fouad
Я создаю программу, которая открывает и читает файл. Это мой код:
import java.io.*;
public class FileRead{
public static void main(String[] args){
try{
File file = new File("hello.txt");
System.out.println(file.getCanonicalPath());
FileInputStream ft = new FileInputStream(file);
DataInputStream in = new DataInputStream(ft);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strline;
while((strline = br.readLine()) != null){
System.out.println(strline);
}
in.close();
}catch(Exception e){
System.err.println("Error: " + e.getMessage());
}
}
}
но когда я запускаю, я получаю эту ошибку:
C:\Users\User\Documents\Workspace\FileRead\hello.txt
Error: hello.txt (The system cannot find the file specified)
my FileRead.java
и hello.txt
, где в том же каталоге, который можно найти в:
C:\Users\User\Documents\Workspace\FileRead
Мне интересно, что я делаю неправильно?
Я скопировал ваш код, и он работает нормально.
Я подозреваю, что у вас просто проблема с фактическим именем файла hello.txt, или вы работаете в неправильном каталоге. Рассмотрим проверку методом, предложенным @Eng.Fouad
Попробуйте перечислить имена всех файлов в каталоге, вызвав:
File file = new File(".");
for(String fileNames : file.list()) System.out.println(fileNames);
и посмотрите, найдете ли вы свои файлы в списке.
Как правило, просто указание имени файла внутри конструктора файлов означает, что файл находится в том же каталоге, что и файл java. Однако при использовании IDE, таких как NetBeans и Eclipse, то есть не в том случае, если вы должны сохранить файл в каталоге папки проекта. Поэтому я думаю, что проверка поможет решить вашу проблему.
Вам нужно указать абсолютный путь к файлу, где находится файл.
File file = new File("C:\\Users\\User\\Documents\\Workspace\\FileRead\\hello.txt");
В правой части IDE щелкните файл, который вы хотите прочитать, и выберите "путь копирования", затем вставьте его в свой код.
Обратите внимание, что окна скрывают расширение файла, поэтому, если вы создаете текстовый файл "myfile.txt", он может быть фактически сохранен как "myfile.txt.txt"
Как вы запускаете программу?
Это не файл java, который выполняется, а файл .class, который создается путем компиляции java-кода. Вам нужно будет указать абсолютный путь, например user1420750, или относительный путь к вашему каталогу System.getProperty("user.dir")
. Это должен быть рабочий каталог или каталог, в котором вы запускали команду java.
Когда вы запускаете банку, ваш основной класс сам становится args [0], и ваше имя файла появляется сразу после.
У меня была такая же проблема: я мог найти файл, когда был предоставлен абсолютный путь от eclipse (потому что я имел в виду файл как args [0]). Тем не менее, когда я запускаю то же самое из jar, он пытался найти мой основной класс - вот когда я понял, что должен читать свой файл из args [1].
Сначала создайте папку так же, как и указанный вами путь. после этого создайте файл
File dir = new File("C:\\USER\\Semple_file\\");
File file = new File("C:\\USER\\Semple_file\\abc.txt");
if(!file.exists())
{
dir.mkdir();
file.createNewFile();
System.out.println("File,Folder Created.);
}