Почему мой BufferedReader не работает при чтении текстового файла?

Почему мой BufferedReader не работает? Я пытаюсь прочитать текстовый файл с помощью BufferedReader, но каждый раз, когда я запускаю программу, она сообщает об ошибке в моей строке:

BufferedReader br = new BufferedReader(new FileReader("playerinfo.txt"));

Я все еще учусь и не могу понять, что не так с моим BufferedReader. Я пытаюсь заставить его прочитать текстовый файл статистики игроков, а затем вывести файл. Я создал текстовый файл для чтения, но ошибка по-прежнему появляется каждый раз, когда я пытаюсь запустить свою программу. Я пытался найти похожие вопросы на свой, но, похоже, есть несколько способов сделать BufferedReader, и я думаю, что мой выглядит так, как будто он должен работать. Я не могу найти в своем коде других частей, которые кажутся неправильными , но я еще новичок. Любая помощь по этой проблеме приветствуется.

Вот как я пытаюсь это реализовать:

import java.util.*;
import java.io.*;

class Player { //Base class
    String name;
    float weight;
    int age;

    Player() {
    }

    ;

    Player(String name, float weight, int age) {
        this.name = name;
        this.weight = weight;
        this.age = age;
    }
}

class Defensive extends Player {
    int tackles, interceptions;
    float sacks;

    Defensive() {
        super();
    }

    Defensive(String name, float weight, int age, int tackles, int interceptions, float sacks) {
        super(name, weight, age);
        this.tackles = tackles;
        this.interceptions = interceptions;
        this.sacks = sacks;
    }

    public String toString() {
        return "name : " + name + ", weight : " + weight + ", age : " + age + ", tackles : " + tackles + ", sacks : " + sacks + ", interceptions : " + interceptions + "\n";
    }
}

class Football { //main class
    public Defensive readDefensive(BufferedReader br) throws IOException {
        String name = br.readLine();
        float weight = Float.parseFloat(br.readLine());
        int age = Integer.parseInt(br.readLine());
        int tackles = Integer.parseInt(br.readLine());
        float sacks = Float.parseFloat(br.readLine());
        int interceptions = Integer.parseInt(br.readLine());
        return (new Defensive(name, weight, age, tackles, interceptions, sacks));
    }

    public static void main(String[] args) throws IOException {
        Football football = new Football();
        BufferedReader br = new BufferedReader(new FileReader("playerinfo.txt"));
        String line = br.readLine();
        Defensive defensive = new Defensive();
        ArrayList al = new ArrayList();
        while (line != null) {
            if (line.equals("defensive")) {
                defensive = football.readDefensive(br);
                al.add(defensive);
            }
            line = br.readLine();
        }
        System.out.println(al);
    }
}

Java для Javascript - это то же самое, что Pain для Painting или Ham для Hampster. Они совершенно разные. Настоятельно рекомендуется, чтобы начинающие программисты попытались выучить название языка, на котором они пытаются писать код. Когда вы публикуете вопрос, пожалуйста, пометьте его соответствующим образом.

CertainPerformance 18.09.2018 06:48

так в чем же ошибка?

benjamin c 18.09.2018 06:51

Моя ошибка гласит:

Henri Wurm 18.09.2018 16:33

Исключение в потоке "main" java.io.FileNotFoundException: playerinfo.txt (система не может найти указанный файл)

Henri Wurm 18.09.2018 16:33

Попробуйте указать полный путь к файлу.

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

Ответы 1

Ваш класс Football, содержащий основной метод, должен быть объявлен как public class.

Также вам следует рассмотреть возможность использования списков универсальных шаблонов, поскольку ваша реализация прямо сейчас выдает предупреждения. Используйте List<Defensive> defensives = new ArrayList<>();

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