큰 텍스트 파일을 처리해야합니다. 각 줄에는 거의 400 개 열이 있고 파일에는 거의 800,000 줄이 있습니다. 파일의 각 줄 형식은 다음과 같습니다.
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();
하지만 배열의 길이가 그렇게 클 수없는 것 같습니다. 한 줄의 마지막 열을 가져 오기 위해 split ( ",")을 사용하고 있기 때문에 java.lang.ArrayIndexOutOfBoundsException을 받았습니다. 경계, 어떻게 할 수 있습니까? 감사.
text
초기화 할 필요가 없으며 String.split
올바른 크기의 배열을 만듭니다.
String[] text = line.split(",");
또한 참조 같음 ( ==
)을 사용하여 문자열을 비교하고 있습니다 . 다음을 사용해야합니다 .equals()
.
if (text[387].equals(args[2])) { ... }
java.lang.ArrayIndexOutOfBoundsException
인덱스 387
가 너무 커서 아마 얻을 수 있습니다. 마지막 요소를 얻으려면 다음을 사용하십시오.
text[text.length - 1]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다