게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
Java입출력관련하여 오류
게시물ID : programmer_6884짧은주소 복사하기
작성자 : 컴공만세
추천 : 0
조회수 : 357회
댓글수 : 3개
등록시간 : 2014/12/02 16:45:15
옵션
  • 본인삭제금지
안녕하세요 
먼저 제가 작성한 코딩부터 설명드릴게요
텍스트파일을 하나 읽어오고나서 
이번에는 keywords파일을 읽어와요
그리고 텍스트파일을 하나의 결과물을 생성합니다.
그럼 기존 읽어본 텍스트파일에서 keywords에 있는 단어들이면
괄호를 추가로 넣어줍니다.

예를들어 읽어온 텍스트파일에 java라는 글자가 있으면 이런식으로<java>로 출력되게합니다.
근데 제가 지금 작성한 코드에는 ArrayBoundaryException이 나는데
이 오류가 당연한거라고 생각하거든요?
if문에서 비교를 하는데 하나는 keywords를 읽어서 담은 배열 크기는 49이고
텍스트파일에서 한줄한줄 읽은건 크기가 그보다작거나 클수있자나요
그래서 방법이 잘못되었다고 생각이 드는데
좀더 효율적인 방법이 있을까요?



public static void main(String[] args) {
BufferedReader br = null;
InputStreamReader isr = null;
FileInputStream fis = null;
PrintWriter outputStream = null;

String temp = "";
int count = 0;
int arrcnt=0;
String content = "";
String[] key=new String[100];
try {
System.out.print("읽어올 파일을 써주세요:");
Scanner s = new Scanner(System.in);
String InputFile = s.next();
File file = new File(InputFile);
fis = new FileInputStream(file);
isr = new InputStreamReader(fis, "UTF-8");
br = new BufferedReader(isr);
System.out.print("키워드 파일을 입력해주세요:");
Scanner s3 = new Scanner(System.in);
String keyword = s3.next();
Scanner s1 = new Scanner(new File(keyword));
while(s1.hasNext()){//keyword 파일을 배열에 저장
key[arrcnt++]=s1.next();
}
System.out.println(arrcnt);
System.out.print("결과파일의 이름을 입력해주세요");
Scanner s2 = new Scanner(System.in);
String OutputFile = s2.next();
outputStream = new PrintWriter(OutputFile);
String kwalho1="<";
String kwalho2=">";
while ((temp = br.readLine()) != null) {
String key1[]=temp.split("");
for(int i=0;i<key.length;i++){
if(key[i].equals(key1[i])){
content+=kwalho1+key[i]+kwalho2;
}else{
content+=key[i];
}
}
} //이부분이 문제라고 생각합니다. 좀더 효율적인 알고리즘은 어떤걸까요?
outputStream.println("<pre>");
outputStream.print(content);
outputStream.println("</pre>");
긴글 읽어주셔서감사합니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호