Arf firm1 y’a plein de trucs moches dans ce bout de code :
1/ Tu log rien, tu te contentes d’un printStackTrace
, c’est vraiment une mauvaise pratique
2/ Tu te compliques énormément la vie pour lire un bête fichier, si tu veux un Path
, fais juste une Paths.get(...)
, et de manière générale, pense à java.nio
3/ En parlant de ça, prends l’habitude de wrapper toutes les opérations sur les fichiers (lectures, écritures) dans des bloc "try-with-resources"
Bref, utilise java 7, on en est à Java 10 là
=>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | public class ZMD { ScriptEngineManager engineManager; ScriptEngine engine; Invocable invocable; public ZMD() { engineManager = new ScriptEngineManager(); engine = engineManager.getEngineByName("nashorn"); invocable = (Invocable) engine; try(Reader convert = read("js/convert.js"); Reader zmd = read("js/zmarkdown.js")) { engine.eval(convert); engine.eval(zmd); } catch (IOException | ScriptException e) { LOG.error("Could not evaluate JS scripts", e); } } public String toHtml(String md) { Object html = null; try { html = invocable.invokeFunction("toHtml", md); return html.toString(); } catch (ScriptException | NoSuchMethodException e) { LOG.error("Could not convert md to html", e); } return null; } private static Reader read(String path) throws IOException { return Files.newBufferedReader(Paths.get(path)); } } |
C’est pas fou, mais c’est plus "récent" comme Java déjà.
+4
-0