Exemplo n.º 1
0
  /**
   * Checks if file at filename location or in certain relative std folder exists and sets/creates
   * required attributes.
   *
   * @param filename
   * @param fileType
   * @param charSetId
   */
  protected ReadFile(String filename, String fileType, int charSetId) {

    this.charSetId = charSetId;
    this.fileType = fileType;
    this.filename = filename;
    file = new File(filename);
    this.fileName = file.getName();

    if (!file.exists()) {
      System.out.println("Can't find file " + filename);
      System.exit(1);
    }

    switch (fileType) {
      case ("XML"):
        try {
          fileNameWOExt = file.getName().split("\\.")[0];
          System.out.println(fileName);
          r = new InputStreamReader(new FileInputStream(file), defaultCharSets[charSetId]);
        } catch (UnsupportedEncodingException | FileNotFoundException e) {
          e.printStackTrace();
        }
        in = new BufferedReader(r);
        break;
      default:
        try {
          scanner = new Scanner(file, defaultCharSets[charSetId]);
        } catch (FileNotFoundException e) {
          e.printStackTrace();
        }
    }
  }
Exemplo n.º 2
0
 public void record(String path, String add) {
   try (PrintWriter pw =
       new PrintWriter(new OutputStreamWriter(new FileOutputStream(path, true), "UTF-8"))) {
     pw.write(add + "\n");
   } catch (UnsupportedEncodingException | FileNotFoundException e) {
     e.printStackTrace();
   }
 }
  private static void savingDataArguments(
      Map<String, Integer> global_counter,
      Map<String, Map<String, Integer>> arguments_counter,
      String magasin_to_analyse,
      String output_directory) {
    System.out.println(
        "Displaying attributs counting results for magasin : " + magasin_to_analyse + "\n");

    // we loop over each category and create the matching result file
    Iterator<Map.Entry<String, Integer>> cat_counter_it = global_counter.entrySet().iterator();
    while (cat_counter_it.hasNext()) {
      Map.Entry<String, Integer> pairs = (Map.Entry<String, Integer>) cat_counter_it.next();
      // we are here just interested by our argument naming
      String category_name = pairs.getKey();
      Integer global_count = pairs.getValue();
      Map<String, Integer> rayon_argument_counting = arguments_counter.get(category_name);
      BufferedWriter writer;
      try {
        String category_name_for_file = category_name.replace(" ", "_");
        String output_file =
            output_directory + "/" + magasin_to_analyse + "_" + category_name_for_file + ".csv";
        System.out.println("Writing the file : " + output_file);
        writer =
            new BufferedWriter(new OutputStreamWriter(new FileOutputStream(output_file), "UTF-8"));
        // we write the header
        writer.write("ATTRIBUTE_NAME;FILLED_PERCENTAGE\n");
        Iterator<Map.Entry<String, Integer>> it = rayon_argument_counting.entrySet().iterator();
        while (it.hasNext()) {
          Map.Entry<String, Integer> local_pairs = (Map.Entry<String, Integer>) it.next();
          String argument_name = local_pairs.getKey();
          Integer count = local_pairs.getValue();
          System.out.println("Attribut name : " + argument_name);
          double filled_percent = ((double) count) / ((double) global_count) * 100;
          System.out.println("Filled percentage : " + filled_percent + "%");
          if (filled_percent >= 100) {
            System.out.println("Trouble greater than 100%");
            filled_percent = 100;
          }
          String associated_properties = properties_map.get(argument_name);
          writer.write(
              argument_name
                  + ";"
                  + Double.toString(filled_percent)
                  + ";"
                  + associated_properties
                  + "\n");
        }
        writer.close();
      } catch (UnsupportedEncodingException | FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
  }