Почему мой BufferedReader не работает при чтении текстового файла? - PullRequest
0 голосов
/ 18 сентября 2018

Почему не работает мой 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);
    }
}

1 Ответ

0 голосов
/ 18 сентября 2018

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...