Hi,
ich hab folgendes Problem. Ich speicher mir den Inhalt einer Datei in einen String. Dabei ist die Datei mehrere MB groß. Nun möchte ich verschiedene Zeichen in diesem String ersetzen wie zb.: newlines, tabs oder Sonderzeichen.
Mit den Sonderzeichen und den tabs funktioniert es auch einwandfrei, aber wenn ich mit der Funktion replaceAll die newlines ersetzten will, bekomme ich folgende Fehlermeldung:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuffer.append(StringBuffer.java:224)
at java.util.regex.Matcher.appendReplacement(Matcher.java:748)
at java.util.regex.Matcher.replaceAll(Matcher.java:813)
at java.lang.String.replaceAll(String.java:2189)
at FileTester.main(FileTester.java:45)
Die Funktion rufe ich wie folgt auf:
Bei kleineren Strings funktioniert es aber. Gibt es eine andere Möglichkeit alle newlines zu ersetzten, oder soll ich mir den String ich kleinere String zerlegen und auf diese dann die Funktion anwenden.
ich hab folgendes Problem. Ich speicher mir den Inhalt einer Datei in einen String. Dabei ist die Datei mehrere MB groß. Nun möchte ich verschiedene Zeichen in diesem String ersetzen wie zb.: newlines, tabs oder Sonderzeichen.
Mit den Sonderzeichen und den tabs funktioniert es auch einwandfrei, aber wenn ich mit der Funktion replaceAll die newlines ersetzten will, bekomme ich folgende Fehlermeldung:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuffer.append(StringBuffer.java:224)
at java.util.regex.Matcher.appendReplacement(Matcher.java:748)
at java.util.regex.Matcher.replaceAll(Matcher.java:813)
at java.lang.String.replaceAll(String.java:2189)
at FileTester.main(FileTester.java:45)
Die Funktion rufe ich wie folgt auf:
Java:
summary = summary.replaceAll("\n", " ");
Bei kleineren Strings funktioniert es aber. Gibt es eine andere Möglichkeit alle newlines zu ersetzten, oder soll ich mir den String ich kleinere String zerlegen und auf diese dann die Funktion anwenden.