Scrittura lenta: 18.74 secondi
Scrittura veloce: 0.246 secondi
P.S.: Più la dimensione cresce più il divario cresce, sembra impossibile!
grazie andbin, sei il numero 1!
Ho trovato lo script nel capitolo NIO del mio manuale ma la differenza è notevole!!!
Ti devo chiedere 2 cose:
1) Sapresti spiegarmi in modo semplice senza troppi giri di parole il motivo per cui il nuovo script è riesce ad essere più veloce?
2) Con il nuovo codice si hanno dei contro oltre che dei pro?
3) Si scrive prima nella ram e poi sul disco o direttamente sul disco con questi sistemi?
4) Esiste qualcosa di ancora più veloce? Era questo che avevi in testa? (buttaci un occhio magari riesci a migliorarlo ancora... anche solo di qualche miliardesimo di nanosecondo...)
Ecco il nuovo codice:
lo lascio servisse a qualche altro forumisto di html.it.codice:try (OutputStream fout = new BufferedOutputStream( Files.newOutputStream(Paths.get(nome_file)))) { String riga = ""; for (int i = 0; i < matrice.length; i++) { riga = ""; for (int j = 0; j < matrice[0].length; j++) { if (j < matrice[0].length - 1) { riga = riga + matrice[i][j] + ","; } if (j == matrice[0].length - 1) { riga = riga + matrice[i][j] + "\n"; } } fout.write(riga.getBytes()); riga = ""; } } catch (InvalidPathException e) { System.out.println("URL scelto inesistente."); System.out.println("Path Error " + e); } catch (IOException e) { System.out.println("Errore nella scrittura del file .CSV"); System.out.println("I/O Error: " + e); }