2010-12-13 7 views
0

내 작업 공간에 일부 Java 파일이 있습니다. 이제는 한 줄에 한 줄씩 다른 소스에서 오는 텍스트 파일을 읽고 해당 줄을 작업 공간의 해당 Java 파일에 삽입하는 Java 프로그램을 작성하려고합니다.Java - 파일 읽기/쓰기

".java"클래스에 삽입 할 파일이 텍스트 파일에 나와 있습니다. 예를 들어

내가 게터 내 작업 공간에서 AddressType.Java을 가지고, 나는 텍스트 파일 몇 가지 추가 방법, 주석, 인스턴스 변수 등 등 실제로 가서에 앉아야있다 즉 AddressType.txt있어

세터 AddressType.Java 파일의 본문

이 때문에 나는 내 마음과 일종의 논리를 가지고 있습니다. 파일을 읽고 쓰는 방법을 안다. 여기 내 문제가있다. 내 접근 방식은 AddressType.Java의 끝괄호}를 공백으로 대체 한 다음 AddressType.txt의 내용을 AddressType.java로 가져온 다음}을 다시 닫는 것입니다.

Java 프로그램을 사용하여 .java 파일에서 EOF 찾기 방법을 알아낼 수 있습니까?

콘텐츠를 옮길 수있는 자바 파일과 텍스트 파일이 100 개이기 때문에 수동으로 할 수 없습니다.

도와주세요. 나는이 질문을 이해하기를 바랍니다.

실행 시간이 없습니다. 모든 것은 컴파일 시간 자체입니다. 나는 txt 파일 내용을 자바 파일에 병합 한 다음 자바 파일을 컴파일하고 제공해야 함을 의미한다.

답변

2

전체 자바 텍스트 파일을 메모리로 읽어 들여 마지막}}을 제거 할 수 있습니다. 수업은 아주 클 수 없습니다. 즉 몇 MB 미만입니다. IOUtils.toString()을 사용하면 한 줄에이 작업을 수행 할 수 있습니다.

String textWithoutLast = IOUtils.toString(
     new FileInputStream(javaFilename) 
    ).replaceAll("}\\s*$",""); 

마지막 공백, 탭 또는 줄 바꿈을 포함하여 마지막}을 (를) 제거합니다.

+0

참고 : 여기서는 Java 파일의 시작 형식이 올바른 것으로 가정합니다. ;) –

0

당신은 당신이 이클립스 플러그인을 쓰기로

+0

피터와 pgras 감사합니다. 나는 어느 하나를 시도 할 것이다 – Shiv

+1

자바를위한 어휘 분석기를 기꺼이 쓰지 않는다면 이것은 작동하지 않을 것이다. 문자열 리터럴이나 주석 안에 문자열을 넣을 수도 있고 거기에 균형이 맞지 않을 수도 있습니다. –

0

사람을 잘 알고 당신이 폐쇄 하나를 발견 같은 번호가 ... 기존 코드 포매터를 확장 할 수 있습니다 일단 오프닝을 { s와 닫는 }을 계산해야 이 작업을 수행하는 플러그인.