2012-01-18 13 views
6

Esiste un limite di caratteri per l'output dell'istruzione Java System.out.println(String x)?Limite di caratteri per System.out.println() in Java

Quando provo a stampare dell'XML da una chiamata di servizio Web utilizzando System.out.println(), solo una parte di essa viene effettivamente stampata nella console.

La stringa XML che sto cercando di stampare è enorme.

Perché sta succedendo?

+0

puoi pubblicare uno screenshot per mostrare la natura della tua produzione? –

risposta

14

Stai vivendo questo all'interno di Eclipse? Se sì:

EDIT:

  1. Vai alla Finestra> Preferenze> Esegui/Debug> Console
  2. "Uscita Limite Console"
  3. Deseleziona (. In alternativa, è possibile aumentare la dimensione del buffer Console)

Source

+2

Solo un consiglio di cortesia, le risposte di solo collegamento sono generalmente scoraggiate sui siti Stack Exchange. Le risposte dovrebbero essere in grado di stare da sole senza dipendere da risorse esterne. Le ragioni di ciò sono descritte [qui] (http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers), [qui] (http : //meta.stackexchange.com/q/116301/131713) e in molti altri post.Solitamente contrassegno solo i post in questo modo e mods e li elimini, ma dato che tu li hai appena postati ho pensato di darti la possibilità di aggiornare (e possibilmente guadagnare qualche rappresentante!) Prima. – Pops

+0

Capisco - ma in questo caso speciale la risposta è proprio in cima al sito collegato. In ogni caso, potrebbe essere utile avere la soluzione su SO, una volta che il sito collegato si interrompe. Quindi, modifica completata ... – quaylar

3

La mia ipotesi è che si vede solo l'ultima parte della stringa perché la console ha un numero limitato di righe che può visualizzare.

Prendere in considerazione la registrazione in un file da Java, o reindirizzare lo standard output dal programma in un file:

java com.foo.bar.Main > output.log 
+0

+1: non vi è alcun limite sul lato Java (ad esempio nello stack di output). –

+1

@Stephen_C Output stack? Come è stato sottolineato, c'è un limite imposto per una singola chiamata a println, ma è enorme. – Jivings

3

Sei limitato dalla dimensione massima di una stringa Java. È tutto. Questo dovrebbe essere l'equivalente della lunghezza Integer.MAX_VALUE (2147483647), che è la dimensione massima di un array, poiché una stringa è un array di caratteri.

Altrimenti, è il limite di capacità della console Eclipse, come altri hanno già detto.

0

Non c'è un massimo esplicito, ma l'offset nella stringa è determinato da int, quindi Integer.MaxValue sarebbe una limitazione IMO. Dipenderà anche dalla tua memoria disponibile.

La soluzione migliore sarebbe quella di trasmettere in streaming l'output e scrivere porzioni alla volta per garantire di ottenere tutto.

1

So che stampare stringhe molto lunghe nella console Eclipse comporta l'invisibilità parziale o totale della stringa. Potresti voler spezzare il tuo xml in pezzi. Se stai vedendo solo la parte di coda dell'XML, suppongo che il buffer della tua console ne tagli una parte. @Quaylar ha pubblicato un link su questo.

Problemi correlati