큰 텍스트 파일을 처리해야합니다. 각 행에는 거의 400 개의 열이 있고 파일에는 거의 800000 개의 행이 있습니다. 각 행의 형식은 다음과 같습니다. 파일은 같은 :어떻게 split()을 많은 수의 요소와 함께 사용할 수 있습니까?
340,9,2,3 ........ 5,2,
마지막 열은 LA의 경우 제가하고 싶은 것은, 각 라인이며, LA
,이 줄의 첫 번째 열을 인쇄하십시오.내가 간단한 프로그램이
BufferedReader bufr = new BufferedReader(new FileReader ("A.txt"));
BufferedWriter bufw = new BufferedWriter(new FileWriter ("LA.txt"));
String line = null;
while ((line = bufr.readLine()) != null) {
String [] text = new String [388];
text = line.split(",");
if (text [387] == args[2]) {
bufw.write(text[0]);
bufw.newLine();
bufw.flush();
}
}
bufw.close();
bufr.close();
할 쓰기하지만 배열의 길이가 큰, 난 내가 분할을 사용하고 이후 java.lang.ArrayIndexOutOfBoundsException 를 ("받은 캔트 보인다, ") 행의 마지막 열을 가져 오려면 배열 범위를 벗어날 것입니다. 어떻게해야합니까? 감사.
이렇게되어야합니다. ---> String [] text = line.split (","); – StackFlowed
분할에 배열이 388 길이라는 보장은 없습니다. 예를 들어 빈 줄은 배열 [1]로 분할됩니다. – Compass
나는 당신이 말한 것과 같이 그것을 바 꾸었습니다. 그러나 나는 거의 400 컬럼을 가지고 있기 때문에, 그것과 관련이 있습니까? – jacobbb