Ho rubato questo frammento dal web. Ma sembra essere limitato a 4096 byte ed è piuttosto brutto IMO. Qualcuno sa di un approccio migliore? In realtà sto usando Groovy btw ...Converti stream in stringa Java/Groovy
String streamToString(InputStream input) {
StringBuffer out = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = input.read(b)) != -1;) {
out.append(new String(b, 0, n));
}
return out.toString();
}
EDIT:
ho trovato una soluzione migliore in Groovy:
InputStream exportTemplateStream = getClass().getClassLoader().getResourceAsStream("export.template")
assert exportTemplateStream: "[export.template stream] resource not found"
String exportTemplate = exportTemplateStream.text
Quindi hai controllato i documenti _dopo_ chiedere? Almeno potresti incollare un esempio del suo utilizzo. – Anon
Ho continuato a curare, naturalmente, non ho visto il metodo .text all'inizio. Ecco lo snippet di codice: InputStream exportTemplateStream = getClass(). GetClassLoader().getResourceAsStream ("export.template") assert exportTemplateStream: "[export.template stream] risorsa non trovata" String exportTemplate = exportTemplateStream.text –
sufficientemente corretto. Ma come ho detto agli altri: usa la variante che prende un set di caratteri esplicito - il set di caratteri predefinito è raramente quello che vuoi. – Anon