Я пытаюсь использовать BufferedReader
для чтения строк файла, но это дает мне FileNotFoundException
. После некоторого поиска я нашел способ проверить, существует ли файл (я использовал это: https://www.javabrahman.com/quick-tips/how-to-check-for-existence-of-a-file-in-java/). Он возвращает true, поэтому файл определенно существует и путь правильный, однако BufferedReader по-прежнему не может его найти. Я просмотрел кучу возможных решений, но, похоже, ни одно из них не работает.
Вот мой код:
import java.io.*;
import java.lang.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class neki
{
public static void main(String[] args)
{
File file = new File("C:\\Users\\natan\\Desktop\\words.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String curr = "AAAAAA";
int st=11184810;
String word;
boolean digit=false;
while(!curr.equals("ffffff"))
{
curr=Integer.toHexString(st);
for(int i=0;i<6;i++)
{
char c=curr.charAt(i);
if (Character.isDigit(c))
{
digit=true;
}
}
if (!digit)
{
for(int j=0;j<466545;j++)
{
word=br.readLine();
word=word.toLowerCase();
if (curr==word)
{
System.out.println(curr);
}
}
}
st++;
digit=false;
Path filePath_1= Paths.get("C:\\Users\\natan\\Desktop\\words.txt");
boolean fileExists_1= Files.exists(filePath_1);
System.out.println("File 'bleh' exists: "+fileExists_1);
}
}
}
Я бы с подозрением отнесся к тому факту, что вы используете File для получения файла для одного метода, но Paths для его получения для другого. Не могу сказать, что я слишком хорошо знаком с ними, но, скорее всего, они работают по-другому.
@obermillerk Не воспринимайте это как данность (это немного сложнее), но они довольно взаимозаменяемы. Это не должно быть проблемой. Хотя я также настоятельно рекомендую использовать Paths-API вместо File-API.
Проверить права доступа родительских папок stackoverflow.com/questions/21008976/…
Эти пути не совпадают, у одного на пути есть «тест», а у другого нет.
new File("C:\\Users\\natan\\Desktop\\test\\words.txt");
Paths.get("C:\\Users\\natan\\Desktop\\words.txt");
Использование константы для хранения статических значений, на которые ссылаются в нескольких местах, может предотвратить такого рода ошибки.
Привет спасибо за ответ. К сожалению, разницы в путях к файлам изначально не было, и я добавил ее, потому что пытался исправить проблему и забыл изменить ее обратно в вопросе. Извините за путаницу!
@ Natanšemrl Означает ли это, что это правильный ответ или что этот ответ не подходит?
Это не подходящие ответы.
Вы пытались вызвать метод существуют() объекта файл перед его передачей в FileInputStream?