Questa è un'altra classe del codice,dove il compilatore riscontra degli errori.
codice:
   1.
      import java.util.Random;
   2.
      import java.util.StringTokenizer;
   3.
      import java.io.*;
   4.
      /**
   5.
       *The class that contain the questions
   6.
       */
   7.
      class Questions {
   8.
          Player player;
   9.
          private int totQ;
  10.
          int qNum[] = new int[15];
  11.
          String questions[][];
  12.
          String answer[][];
  13.
          String exactly[][];
  14.
          FileInputStream db, dbNum, dbTemp;
  15.
          PrintStream dbTemp2;
  16.
          /**
  17.
           *The constructor of class Questions
  18.
           */
  19.
          Questions() {
  20.
              int k = 1, o;
  21.
              //Update dbNum.txt and take the total questions.
  22.
              for (k = 1 ; k < 16 ; k++) {
  23.
                  try {
  24.
                      dbTemp = new FileInputStream("/home/piccettina/workspace/Databases/database" + Integer.toString(k) + ".txt");
  25.
                          do {
  26.
                              o = dbTemp.read();
  27.
                              if (o != -1) {
  28.
                                  if ((char) o == ';') totQ++;
  29.
                              }
  30.
                          } while (o != -1);
  31.
                  } catch (IOException ioe) {}
  32.
              }
  33.
          }
  34.
          /**
  35.
           *The constructor of class Questions
  36.
           */
  37.
          Questions(Player p) {
  38.
              int k = 1, o;
  39.
              byte y;
  40.
              int count[] = new int[15];
  41.
              player = p;
  42.
              //Update dbNum.txt
  43.
              for (k = 1 ; k < 16 ; k++) {
  44.
                  try {
  45.
                      dbTemp = new FileInputStream("/home/piccettina/workspace/Databases/database" + Integer.toString(k) + ".txt");
  46.
                          do {
  47.
                              o = dbTemp.read();
  48.
                              if (o != -1) {
  49.
                                  if ((char) o == ';') count[k - 1]++;
  50.
                              }
  51.
                          } while (o != -1);
  52.
                  } catch (IOException ioe) {}
  53.
              }
  54.
              try {
  55.
                  dbTemp2 = new PrintStream("/home/piccettina/workspace/Databases/dbNum.txt");
  56.
                  for (k = 0 ; k < count.length ; k++) {
  57.
                      dbTemp2.printf("%d", count[k]);
  58.
                      if (k != (count.length - 1))
  59.
                          dbTemp2.printf("%c", ',');
  60.
                  }
  61.
              } catch (IOException ioe) {}
  62.
              //Update qNum based on number on dbNum.txt
  63.
              try {
  64.
                  dbNum = new FileInputStream("/home/piccettina/workspace/Databases/dbNum.txt");
  65.
                  int i = 0, a = 0;
  66.
                  String str = "";
  67.
                  StringTokenizer stNum;
  68.
                  do {
  69.
                      i = dbNum.read();
  70.
                      if (i != -1) str += (char) i;
  71.
                  } while (i != -1);
  72.
                  stNum = new StringTokenizer(str, ",", false);
  73.
                  while (stNum.hasMoreTokens() && stNum.countTokens() > 1) {
  74.
                      qNum[a] = Integer.parseInt(stNum.nextToken());
  75.
                      a++;
  76.
                  }
  77.
                  dbNum.close();
  78.
              } catch (IOException ioe) {
  79.
              } catch (NumberFormatException nfe) {}
  80.
              questions = new String[15][qNum[player.getCurrentQ() - 1]];
  81.
              answer = new String[15][qNum[player.getCurrentQ() - 1] * 4];
  82.
              exactly = new String[15][qNum[player.getCurrentQ() - 1]];
  83.
          }
  84.
          /**
  85.
           *This function make a casual number adapt to take a casual question.
  86.
           *@return casual int number
  87.
           */
  88.
          final long getCasualNumber() {
  89.
              Random a = new Random();
  90.
              try {
  91.
                  return a.nextInt(qNum[player.getCurrentQ() - 1]);
  92.
              } catch (ArrayIndexOutOfBoundsException aioobe) {
  93.
                  return -1;
  94.
              } catch (IllegalArgumentException iae) {
  95.
                  try {
  96.
                      return a.nextInt(qNum[player.getCurrentQ() - 1] + 1);
  97.
                  } catch (ArrayIndexOutOfBoundsException aioobe) {
  98.
                      return -1;
  99.
                  }
 100.
              }
 101.
          }
 102.
          /*
 103.
          public static int getPreviousQ(int level) {
 104.
              int pq = 0;     //Previous Questions
 105.
              for (int a = 0 ; a < level ; a++)
 106.
                  pq += qNum[a];
 107.
              return pq;
 108.
          }*/
 109.
          /**
 110.
           *This function make the questions and the relatives answers.
 111.
           *@params q - the "questions" object.
 112.
           */
 113.
          void MakeQandA(Questions q) {
 114.
              int file = 1;
 115.
              int i = 0;
 116.
              int numST = 0;
 117.
              int qu = 0, an = 0, ex = 0;           //questions, answer, exactly
 118.
              String totStr = "", tempStr = "";
 119.
              StringTokenizer st;
 120.
              //Open the files
 121.
              while (file < 16) {
 122.
              qu = 0; an = 0; ex = 0;
 123.
              totStr = ""; tempStr = "";
 124.
              numST = 0; i = 0;
 125.
              try {
 126.
                  db = new FileInputStream("/home/piccettina/workspace/Databases/database" + Integer.toString(file) +".txt");
 127.
              } catch (FileNotFoundException fnfe) {
 128.
                  System.out.println("Error: " + fnfe);
 129.
              }
 130.
              //Read the file and copy it into totStr String variable.
 131.
              do {
 132.
                  try {
 133.
                      i = db.read();
 134.
                      if (i != -1) totStr += (char) i;
 135.
                  } catch (IOException ioe) {}
 136.
              } while (i != -1);
 137.
              //Use StringTokenizer to take the question and the relatives answers
 138.
              st = new StringTokenizer(totStr, ";-_\n", false);
 139.
              while (st.hasMoreTokens() && st.countTokens() > 1) {
 140.
                  switch (numST) {
 141.
                      case 0:
 142.
                          q.questions[file - 1][qu++] = st.nextToken();
 143.
                          numST++;
 144.
                          break;
 145.
                      case 1:
 146.
                      case 2:
 147.
                      case 3:
 148.
                      case 4:
 149.
                          q.answer[file - 1][an++] = st.nextToken();
 150.
                          numST++;
 151.
                          break;
 152.
                      case 5:
 153.
                          q.exactly[file - 1][ex++] = st.nextToken();
 154.
                          numST = 0;
 155.
                          break;
 156.
                  }
 157.
              }
 158.
              try {
 159.
                  db.close();
 160.
              } catch (IOException ioe) {}
 161.
              file++;
 162.
              }
 163.
          }
 164.
          public int getTotQ() {
 165.
              return totQ;
 166.
          }
 167.
      }