Ich habe einige sehr grundlegende Codes wieScanner schneidet meinen String nach etwa 2400 Zeichen
while (scan.hasNextLine())
{
String temp = scan.nextLine();
System.out.println(temp);
}
wo Scan ist ein Scanner über eine Datei aus.
Allerdings, auf einer bestimmten Zeile, die etwa 6k Zeichen lang ist, schneidet die Temperatur nach etwa 2470 Zeichen. Es ist nichts Besonderes, wenn es ausfällt; Es ist in der Mitte des Wortes "Australien". Wenn ich Zeichen aus der Zeile lösche, ändert sich die Stelle, an der sie sich entfernt. z.B. Wenn ich die Zeichen 0-100 in der Datei lösche, erhält der Scanner das, was vorher 100-2570 war.
Ich habe Scanner für größere Saiten vorher verwendet. Irgendeine Idee, was könnte schief gehen?
Es ist definitiv nicht alles da, wenn ich die Länge ausdrucke. Für den Kontext ist dies eine CSV-Datei aus Excel exportiert, die ich in VIM bearbeite. Ich glaube nicht, dass da irgendwelche Sonderzeichen drin sind; Wie gesagt, wenn ich Zeichen lösche, ändert sich der Cut-off-Punkt. So während es mitten in "Australia" abschneidet, wenn ich irgendwo vor "Australia", "Australia" und den nächsten ~ 90 Zeichen nachher 100 Zeichen lösche, geht es ganz gut. Das gleiche passiert in der nächsten Zeile, nur schneidet es bei 112 statt 2470 ab. Das sind die einzigen zwei Zeilen, die nicht funktionieren. Einige der Linien sind länger. – Ventrue
Ich habe es mir in einem Hex-Editor angeschaut und es ist in Ordnung, nur ascii Werte. Die zweite Zeile schneidet zwischen einem 't' und einem Apostroph. – Ventrue
@Ventrue: LOL - Ich hätte * nur * eine Bearbeitung hinzugefügt, um mit einem Hex-Editor neu zu beginnen. Hmm. Ich habe ein paar andere Vorschläge hinzugefügt - aber das "Debugging in es" könnte sich herausstellen, was Sie brauchen ... –