.txt 파일의 일부 내용을 새 파일에 복사 한 후 화면에 표시하려고합니다. 텍스트 파일의 내용이 전체적으로 똑같은 구조는 아닙니다. 내가이변수 열 크기로 배열 검색 Java
if (m[11].equals("Channel") && m[12].equals("ID")){ System.out.println("Wavelenght ID = " + m[9]);
을했을 때
나는 경계 중 오류 배열을 얻었다.
TESTSTEP : DEBUG * FPGA 구성 ECFG * : EED 3 : 채널 ID
이 라인은 내가 그것을 Wavelenght ID = 3
String p = path.replace("\\", "\\\\");
File file = new File(p);
File[] files = file.listFiles();
BufferedReader inputStream = null;
PrintWriter outputStreamI = null;
PrintWriter outputStreamO = null;
try {
String l,c;
for (int i=0; i<files.length; i++){
inputStream = new BufferedReader(new FileReader(files[i].getAbsolutePath()));
outputStreamI = new PrintWriter(new FileWriter("S:\\WRED_IBP\\" + files[i].getName().replaceFirst("[.][^.]+$", "")+ "Ingress.txt"));
outputStreamO = new PrintWriter(new FileWriter("S:\\WRED_IBP\\" +files[i].getName().replaceFirst("[.][^.]+$", "")+ "Egress.txt"));
while ((l = inputStream.readLine())!= null) {
String[] m=l.split(" ");
for(int d=0; d<m.length; d++){
c=m[d];
if (c.equalsIgnoreCase("ied_wred")){outputStreamI.println(l); if (outputStreamI.checkError()){System.err.println("Error in output stream");}} //|| c.equalsIgnoreCase("WARNING") || c.equals("ERROR")
else if (c.equalsIgnoreCase("eed_brc_ibp")){outputStreamO.println(l); if (outputStreamO.checkError()){System.err.println("Error in output stream");}} // || c.equalsIgnoreCase("WARNING") || c.equals("ERROR")
}
}
}
} catch(IOException e){
System.err.println("Caught IOException: " + e.getMessage());
}//wait(10);
finally {
if (inputStream != null) {
try{ inputStream.close();} catch (IOException e) {e.printStackTrace();}}
if (outputStreamI != null) {outputStreamI.close();}
if (outputStreamO != null) {outputStreamO.close();}
}
}
나는 여전히 java.lang.ArrayIndexOutOfBoundsException : 11. 첫 줄에는 코드가 여기에 끝나고 예외가 잡히는 열이 약 3 개 밖에 없다고 알려줍니다. – user2107046
예외가이 줄에 있는지 확인하십시오. 내가 사용한 정확한 라인을 사용 했니? 순서가 중요합니다. – BobTheBuilder
예 예외가이 줄에서 올 것이라고 확신하며 복사하여 붙여 넣은 정확한 코드를 사용했습니다. split 메서드 뒤에 코드를 삽입합니다. while ((l = inputStream.readLine())! = null) { \t \t \t \t \t String [] m = l.split (""); \t \t \t \t \t (m.length> 8 && m [11] .equals ("채널") && m [12] .equals ("ID")) { \t \t \t \t \t 경우에서 System.out.println ("Wavelenght ID ="+ m [9]); \t \t \t \t \t} – user2107046