2014-10-04 3 views
0

예이 질문은 기술적으로 "끝나지 않을 것"이며 "토론을 유도 할"수 있습니다. 그러나 아래 방향을 묻지는 않습니다. 토끼 구멍이 여기에, 나는 단지 내가 올바른 분야에 있는지 확인하고 싶습니다. 그럼, 그 말은, 내 질문 :큰 문자열을 Java로 파일에 저장하고 "빨리"읽으십시오.

나는 사용자가 몇 가지 다른 작은 데이터 요소와 함께 1-4 문장 문자열을 입력하고 저장할 수있는 프로그램을 만들고 싶습니다. 이상적으로 문자열은 일종의 서식으로 저장되지만 다른 다리입니다. 나는 하나의 파일에 500 ~ 2000 개의 파일을 저장하고 "빨리"읽을 수있는 옵션을 찾고있다. "빨리"나는 이상적으로 내가 파일을 통해 구문 분석하고 언어에 일관성을 촉진하기 위해 입력하는 동안 사용자에게 "제안"할 충분한 속도로이 특정 데이터 요소를 끌어 내고 싶다는 것을 의미합니다.

이제 저장소 옵션으로 가장 먼저 떠오르게되는 것이 XML입니다. 그래서 제 질문은 :

가) 야구장에 도착 심지어 저를 XML 파일을 사용하는 것입니다 내가 다른 "상대적으로"해당 스토리지 옵션이 내려다 보이는, 그리고 많은 많은 많은 다른 변수가 있음을

B) 이해하고 그 많은 문자열을 읽고 2 초 시간 프레임에 <에 표시 할 수 있습니다. (좋은 코딩 방법과 적절한 XML 파서 유형을 가정 할 때)

그래서 요약, 파이프 꿈입니까? 또는 특정 상황에서 올바른 코드로 수행 할 수 있습니까?

감사합니다.

+2

솔직히 이런 "실시간"동작을 구현하려면 파일 입출력을 시도하고 피해야합니다. 데이터가 '<2000'과 같은 String으로 제한되면 모든 String을 정적 맵 (HashMap 또는 TreeMap)으로 읽습니다. 좀 더 빠른 것을 원한다면 접미사 트리가 더 빨라질 지 모르지만, 나는 그것에 대해 확실히 알고 있습니다. 또한 접미어 트리에 대한 고유 한 코드를 작성해야합니다. –

+0

흠, 내가 다른 연구를 기반으로 생각해 왔던 것입니다. 아마도 두 가지 데이터 집합을 보관해야하고 제안에 대한 데이터 집합을 유지해야 할 것입니다. HashMap과 Suffix Tree 포인터를 가져 주셔서 감사합니다. 그게 내가 원하는 정보의 종류 야! – BenW301

답변

1

당신의 아이디어가 < 2 초의 야구장에서 실행 가능하다면 나는 정확하게 대답 할 수 없습니다. 내가 말할 수있는 것은 순수한 텍스트를 단순한 파일에 저장하고 그와 같은 명령으로 읽을 수는 없다는 것입니다. 적절한 인덱싱을 사용하여 데이터베이스 테이블에 저장하는 것과 같은 또 다른 간단한 접근법 (아마 쉽게 만들 수도 있음)은 아마도 더 빠른 결과를 낼 수 있습니다.

예를 들어, 첫 번째 단어를 입력하면 전체 문장을 가져 오려면 (다른 열에있는) 첫 번째 단어를 색인하고 해당 색인 된 열을 통해 쿼리를 수행하면됩니다.

+0

그래, 나는 그것에 대해 생각했는데 팀원들과 쉽게 공유 할 수있는 "단일 파일"설정을 가져 오기/내보내기/업데이트 감각을 바라고 있었지만 아직도 당신이 나를 걱정하는 텍스트 파일을 읽는 중이다. – BenW301

+1

확장 성 요구 사항이나 메모리 제약 조건이없는 경우 Chthonic Project의 아이디어가 좋으며 (초기화 이외의 다른 방법보다 빠릅니다) 시작시 XML + HashMap로드, 왜 안 되니? – ddmps

+0

그래, 이제 그만하면 충분하다고 생각해. 그것은 어쨌든 한 발의 가치가 있습니다. 모두에게 감사드립니다! – BenW301

관련 문제