0
.cfg 파일의 텍스트를 바꾸려고합니다.StringIndexOutOfBoundsException 텍스트를 바꿀 때
내가 Gradle을를 사용하는, 그래서 정말 자바와 그루비의 혼합하고 있습니다.
다음은 현재 코드입니다. 이것은 재산의 첫 번째 줄을 잡고 새 줄을 시작 \n
을 추가 한 다음 내가 텍스트를 수입하고있어 파일의 내용 (텍스트가 아래에있다)한다 :
String filename = "settings/code_cfg.cfg"
File f = new File(filename)
String text = f.getText()
String replace = "$1 \n" + text
dspaceCfgTxt = dspaceCfgTxt.replaceFirst(/(filter.plugins.*)/, replace) <!-- This is line 545
편집 : 텍스트를 아래처럼 여러 여러 속성으로 구성
a random property \
: 나는에서 텍스트를 수입하고있어 파일 code_cfg.cfg
의
filter.plugins = property.sub.random.jibberish \
property.second.random \
property.lala
내용은 다음과 같다 내가 실행하려고 할 때
filter.plugins = property.sub.random.jibberish \
a random property \
property.second.random \
property.lala
그러나 나는 다음과 같은 오류를 받고 있어요 :
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 28
at java_lang_String$replaceFirst.call(Unknown Source)
at build_mv9ue0gaar4db2nj1lt6j3olk$_run_closure35.doCall(/Users/user/build.gradle:545)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:485)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:469)
at org.gradle.api.internal.tasks.TaskStatusNagger$1.execute(TaskStatusNagger.java:78)
at org.gradle.api.internal.tasks.TaskStatusNagger$1.execute(TaskStatusNagger.java:74)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:64)
... 57 more
을 그리고 난 아무 생각이 617,451,515,
편집 : 그래서 최종 결과는 다음과 같이해야한다 왜. 이 문제를 해결하는 방법에 대한 제안 사항이 있으십니까?
[this] (http://stackoverflow.com/a/16927133/2051952) 도움이 되었습니까? – dmahapatro
@dmahapatro 물론 전체 프로세스를 더 쉽게하기 위해 약간의 도움이되지만 문제는 여전히 동일합니다 : replaceAll 문 ... –
@dmahapatro 아, 어리 석다. 링크의 코드가 완벽하게 작동하지만 정규식이 올바르지 않습니다. –