/** * 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(); } } }
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(); } } }