2014-05-24 2 views
-1

사전을 구현하는 프로그램을 작성하고있었습니다.java를 사용하여 파일의 특정 부분을 변경하는 방법은 무엇입니까?

실제로 내가 한 것은 자바 애플릿을 작성하여 .xml 파일에 정의 된 단어를 표시하는 것입니다. 그리고 org.w3c.dom 패키지를 사용했습니다.

이제 사용자가 프로그램의 사전에서 단어를 수정할 수있는 새로운 기능을 추가하려고합니다. 그러면 수정 사항이 원래 .xml 파일에 저장됩니다.

여기 내 질문이 있습니다. 변경 사항을 저장하려면 어떻게해야합니까? 사용자는 한 번에 한 단어 만 수정할 수 있으므로 전체 파일을로드하고 특정 부분을 수정하고 전체 파일을 디스크에 다시 쓰지 않으려 고합니다. 거기에 새로운 방법이 있을까요?

+0

[SAX] (http://docs.oracle.com/javase/tutorial/jaxp/sax/parsing.html)에 대한 내용을 반드시 읽어야합니다. –

답변

0

특정 형식으로 파일을 읽고 쓰는 것은 사용자가 묘사하는 것보다 조금 더 까다 롭습니다.

"XML 눈"으로 보았을 때 파일의 일부분 만 변경되었지만 파일 수준에서 변경하려면 seek을 변경 위치에두고 거기에서 새 바이트를 씁니다. 그 문제는 이후의 내용은 당신이 작성하는 새로운 부분에 따라 위치가 조정되지 않는다는 것입니다.

TL; DR - 아니요 - 변경 사항을 적용 할 때 전체 XML 파일을 읽고 써야합니다.

1

XML 파일은 순차적 텍스트 파일입니다. 이것은 XML에 저장된 사전에서 n 번째 단어를 찾을 수있는 공식이나 다른 편리한 방법이 없다는 것을 의미합니다. 요소는 한 문자 씩 순서대로 씁니다 (한 문자는 한 바이트가 될 수도 있고 그렇지 않을 수도 있습니다). 따라서, 무작위 갱신이라고하는 것은 빠져 있습니다.

XML을 읽고 쓰는 가장 편리한 방법은 JAXB를 참조하십시오. 사용자가 메모리에서 업데이트하고 저장하지 않고 프로그램을 종료 할 수 없도록 일부 작업을 투자하십시오.

관련 문제