Advertisement
Guest User

Untitled

a guest
Apr 10th, 2020
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.25 KB | None | 0 0
  1. package it.itsvolta.corsojava.quiz;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.File;
  5. import java.io.IOException;
  6. import java.nio.file.Files;
  7.  
  8. public class QuizManager implements IQuizManager {
  9.  
  10.     @Override
  11.     public void save(IQuizzes quizzes, String name) throws QuizException {
  12.         // TODO Auto-generated method stub
  13.  
  14.     }
  15.  
  16.     @Override
  17.     public IQuizzes load(String name) throws QuizException {
  18.         File file = new File(name);
  19.         if (!file.exists()) {
  20.             throw new QuizException("Un file con quel nome o in quel percorso non esiste");
  21.         } else if (file.isDirectory()) {
  22.             throw new QuizException("Il percorso indicato è una directory");
  23.         }
  24.  
  25.         IQuizzes quizzes = new Quizzes();
  26.         IQuiz quiz = null;
  27.         Option option;
  28.  
  29.         try (BufferedReader br = new BufferedReader(Files.newBufferedReader(file.toPath()))) {
  30.             String line = null;
  31.             while ((line = br.readLine()) != null) {
  32.                 //Se la linea non inizia con uno spazio, e se la linea non è una linea
  33.                 //completamente vuota, la prende in considerazione
  34.                 if (!line.startsWith(" ") && !line.trim().isEmpty()) {
  35.                     quiz = new Quiz();
  36.                     quiz.setQuestion(line);
  37.  
  38.                     /* Avendo preso in considerazione la prima linea senza spazio, esegue un while
  39.                      * che continua finché la prossima linea esiste (condizione: br.readLine() != null),
  40.                      * e (&&) finché "line" dopo il trim() (e alla quale è stata assegnata la prossima linea
  41.                      * nella prima condizione), NON è vuota. Questa condizione serve a interrompere
  42.                      * il ciclo quando BufferedReader incontra una linea formata solo da spazi.
  43.                      */
  44.                     while ((line = br.readLine()) != null && !(line = line.trim()).isEmpty()) {
  45.                         option = new Option();
  46.  
  47.                         if (line.startsWith("*")) {
  48.                             option.setText(line.substring(1));
  49.                             option.setCorrect(true);
  50.                             quiz.addOption(option);
  51.                         } else {
  52.                             option.setText(line);
  53.                             option.setCorrect(false);
  54.                             quiz.addOption(option);
  55.                         }
  56.                     }
  57.  
  58.                     //Aggiunge quiz dopo il while
  59.                     quizzes.add(quiz);
  60.                 }
  61.             }
  62.         } catch (IOException e) {
  63.             throw new QuizException("Il file indicato non è compatibile");
  64.         }
  65.  
  66.         return quizzes;
  67.     }
  68.  
  69.     @Override
  70.     public void start(String name) throws QuizException {
  71.         // TODO Auto-generated method stub
  72.  
  73.     }
  74.  
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement