Folgender Code soll den Inhalt Datei "input.txt" zeichenweise einlesen und im Array "line" zwischenspeichern. Anschließend soll das Array in einem Rutsch in der Datei "output.txt" gespeichert werden.
"line" hat Platz für 100.000 Elemente. Die Datei "input.txt" besitzt weit weniger Zeichen. Warum bekomme ich trotzdem eine ArrayIndexOutOfBoundsException in der Zeile, wo ich zeichenweise "token" auf "line[]" zuweise?
"line" hat Platz für 100.000 Elemente. Die Datei "input.txt" besitzt weit weniger Zeichen. Warum bekomme ich trotzdem eine ArrayIndexOutOfBoundsException in der Zeile, wo ich zeichenweise "token" auf "line[]" zuweise?
Java:
package parser;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CharByChar {
public static void main(String[] args) throws IOException {
String ifile = "resources/parser/Game2.cpp";
String ofile = "resources/parser/Game2Out.cpp";
char token;
char[] line = new char[100_000];
int count = 0;
try (BufferedReader br = new BufferedReader(new FileReader(ifile))) {
while ((token = (char) br.read()) != -1) {
line[count++] = token;
}
}
try (BufferedWriter bw = new BufferedWriter(new FileWriter(ofile))) {
bw.write(line, 0, line.length);
}
}
}