В java BufferedReader не находит файл, даже если файл существует (и его существование подтверждается с помощью java)!

Я пытаюсь использовать 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);

        }
    }
} 

Вы пытались вызвать метод существуют() объекта файл перед его передачей в FileInputStream?

Thorben Kuck 18.12.2018 20:30

Я бы с подозрением отнесся к тому факту, что вы используете File для получения файла для одного метода, но Paths для его получения для другого. Не могу сказать, что я слишком хорошо знаком с ними, но, скорее всего, они работают по-другому.

obermillerk 18.12.2018 20:30

@obermillerk Не воспринимайте это как данность (это немного сложнее), но они довольно взаимозаменяемы. Это не должно быть проблемой. Хотя я также настоятельно рекомендую использовать Paths-API вместо File-API.

Thorben Kuck 18.12.2018 20:38

Проверить права доступа родительских папок stackoverflow.com/questions/21008976/…

JustinKSU 18.12.2018 20:59
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
452
1

Ответы 1

Эти пути не совпадают, у одного на пути есть «тест», а у другого нет.

new File("C:\\Users\\natan\\Desktop\\test\\words.txt");Paths.get("C:\\Users\\natan\\Desktop\\words.txt");

Использование константы для хранения статических значений, на которые ссылаются в нескольких местах, может предотвратить такого рода ошибки.

Привет спасибо за ответ. К сожалению, разницы в путях к файлам изначально не было, и я добавил ее, потому что пытался исправить проблему и забыл изменить ее обратно в вопросе. Извините за путаницу!

Natan šemrl 18.12.2018 20:37

@ Natanšemrl Означает ли это, что это правильный ответ или что этот ответ не подходит?

Thorben Kuck 18.12.2018 20:48

Это не подходящие ответы.

Natan šemrl 19.12.2018 16:13

Другие вопросы по теме