Goeiemiddag,
Ik ben nu bezig met een Java Listener app die data binnen krijgt via TCP/IP.
Die data lees ik telkens in een byte array van 1024 bytes. Vervolgens maak ik een string van de gelezen data en die string voeg ik daarna toe aan een stringbuffer.
Mijn lusje ziet er dus als volgt uit:
Mijn probleem is nu dat ik na een KB'tje of 500 de volgende error krijg:
java.lang.OutOfMemoryError
Dat vind ik wel al erg snel.
Heeft de Stringbuffer een limiet ingebouwd ofzow
De reden dat ik alles in een string inlees is, omdat ik de snelheid optimaal wil houden als ik later met de ingelezen data ga manipuleren.
Hoe kan ik om dit probleem heen gaan werken
Ik ben nu bezig met een Java Listener app die data binnen krijgt via TCP/IP.
Die data lees ik telkens in een byte array van 1024 bytes. Vervolgens maak ik een string van de gelezen data en die string voeg ik daarna toe aan een stringbuffer.
Mijn lusje ziet er dus als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
| String strTemp = "";
StringBuffer sb = new StringBuffer("");
int intBytesRead = 0;
byte jobBytes[] = new byte[1024];
while((intBytesRead = bufferedinputstream.read(jobBytes)) > 0)
{
// Place de bytes read in a string
strTemp = new String(jobBytes, 0, intBytesRead);
sb.append(strTemp);
} |
Mijn probleem is nu dat ik na een KB'tje of 500 de volgende error krijg:
java.lang.OutOfMemoryError
Dat vind ik wel al erg snel.
Heeft de Stringbuffer een limiet ingebouwd ofzow
De reden dat ik alles in een string inlees is, omdat ik de snelheid optimaal wil houden als ik later met de ingelezen data ga manipuleren.
Hoe kan ik om dit probleem heen gaan werken
It’s nice to be important but it’s more important to be nice