파일의 첫 번째 줄만 바꾸고 싶은 텍스트 파일이 있습니다. 파일은 수백만 행이 될 수 있으므로 모든 것을 반복 할 필요가 없으므로이 작업을 수행 할 다른 방법이 있는지 궁금합니다.자바에서 텍스트 파일의 첫 줄 바꾸기
특정 단어의 인스턴스를 다른 단어로 바꿀 수 있도록 일부 규칙을 첫 번째 줄에 적용하고 싶습니다.
이것이 가능합니까?
파일의 첫 번째 줄만 바꾸고 싶은 텍스트 파일이 있습니다. 파일은 수백만 행이 될 수 있으므로 모든 것을 반복 할 필요가 없으므로이 작업을 수행 할 다른 방법이 있는지 궁금합니다.자바에서 텍스트 파일의 첫 줄 바꾸기
특정 단어의 인스턴스를 다른 단어로 바꿀 수 있도록 일부 규칙을 첫 번째 줄에 적용하고 싶습니다.
이것이 가능합니까?
RandomAccessFile
은 결과 행의 길이가 원래 행의 길이와 다른 경우가 아니면 트릭을 수행합니다.
복사를 수행해야하는 경우 (첫 번째 줄이 대체되고 나머지 데이터는 그대로 복사됩니다) BufferedReader
및 BufferedWriter
을 사용하는 것이 좋습니다. 먼저 BufferedReader
의 readLine()
을 사용하여 첫 번째 행을 읽습니다. 그것을 수정하고 BufferedWriter
에 씁니다. 그런 다음 char[]
배열을 사용하여 파일의 나머지 부분을 무차별 강제로 복사하십시오. 이것은 한 줄씩 복사하는 것보다 더 효율적입니다. 세부 사항이 필요한 경우 알려주십시오.
또 다른 옵션은 동일한 파일 내에서 읽기 및 쓰기를 수행하는 것입니다. 그것은 조금 더 복잡 할 것이다. :) 이것에 대한 자세한 내용이 필요하면 알려주십시오.
RandomAccesssFile을 원합니다. 파일을 사용하면 파일에서 원하는 위치에 읽고 쓸 수 있습니다.
이것은 InputStream 및 OutputStream과 매우 유사하지만 원하는 곳 어디서나 읽고 쓸 수 있습니다.
한 번만 정규식을 적용하십시오. String.replaceFirst ("regex", "replacementstring") : http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#replaceFirst(java.lang.String,%20java.lang.String)
파일을 RandomAccessFile로 엽니 다. 첫 번째 줄을 문자열로 읽어 들인 다음 변경 내용을 적용한 다음 문자열을 다시 씁니다.
라인 1의 길이가 변경되지 않는 경우에만 – Cheekysoft
"파일이 수백만 행이 될 수 있습니다"- regexps와 함께 행운을 빕니다! LOL –
왜 Perl 스크립트를 작성하고 Runtime.exec()를 사용하여 호출할까요? 순수 자바 솔루션이 아닙니다. 또한 깊이가 가기 전에이 기사를 살펴보십시오. http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html
대체 할 문자열의 길이가 다른 경우 pls에서 정보를 제공 할 수 있습니까? 새로운 파일에 복사하지 않고도 가능합니다. – png
길이가 다른 경우 최소한 동일한 파일이나 다른 파일에 모든 바이트를 다시 써야합니다. – volley
누구나 RandomAccessFile에서이 작업을 수행하는 방법에 대한 코드 예가 있습니까? – jymbo