do like the below code, to read each line and perform a concatenation based on an input list listValues.
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
InputStream in = new FileInputStream(new File(file));
br = new BufferedReader(new InputStreamReader(in), 102400);
for (String input; (input= br.readLine()) != null;) {
for (int i = 0; i < listValues.size(); i++) {
sb.append(input.substring(1, 5));
}
map.put(sb.toString(), someOtherValue);
sb.delete(0, sb.length());
}
Using the same StringBuilder for each iteration by setting deleting the contents each time. Still throws
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.lang.String.substring(Unknown Source)
What is the mistake I have done?
Edit: I have corrected as per Bathsheba's suggestion. But now throws,
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Unknown Source)
at java.lang.String.<init>(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at for (String input; (input= br.readLine()) != null;)
What's the problem now?