Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package it.itsvolta.corsojava.quiz;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.IOException;
- import java.nio.file.Files;
- public class QuizManager implements IQuizManager {
- @Override
- public void save(IQuizzes quizzes, String name) throws QuizException {
- // TODO Auto-generated method stub
- }
- @Override
- public IQuizzes load(String name) throws QuizException {
- File file = new File(name);
- if (!file.exists()) {
- throw new QuizException("Un file con quel nome o in quel percorso non esiste");
- } else if (file.isDirectory()) {
- throw new QuizException("Il percorso indicato è una directory");
- }
- IQuizzes quizzes = new Quizzes();
- IQuiz quiz = null;
- Option option;
- try (BufferedReader br = new BufferedReader(Files.newBufferedReader(file.toPath()))) {
- String line = null;
- while ((line = br.readLine()) != null) {
- //Se la linea non inizia con uno spazio, e se la linea non è una linea
- //completamente vuota, la prende in considerazione
- if (!line.startsWith(" ") && !line.trim().isEmpty()) {
- quiz = new Quiz();
- quiz.setQuestion(line);
- /* Avendo preso in considerazione la prima linea senza spazio, esegue un while
- * che continua finché la prossima linea esiste (condizione: br.readLine() != null),
- * e (&&) finché "line" dopo il trim() (e alla quale è stata assegnata la prossima linea
- * nella prima condizione), NON è vuota. Questa condizione serve a interrompere
- * il ciclo quando BufferedReader incontra una linea formata solo da spazi.
- */
- while ((line = br.readLine()) != null && !(line = line.trim()).isEmpty()) {
- option = new Option();
- if (line.startsWith("*")) {
- option.setText(line.substring(1));
- option.setCorrect(true);
- quiz.addOption(option);
- } else {
- option.setText(line);
- option.setCorrect(false);
- quiz.addOption(option);
- }
- }
- //Aggiunge quiz dopo il while
- quizzes.add(quiz);
- }
- }
- } catch (IOException e) {
- throw new QuizException("Il file indicato non è compatibile");
- }
- return quizzes;
- }
- @Override
- public void start(String name) throws QuizException {
- // TODO Auto-generated method stub
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement