2013-06-02 2 views
0

작은 상점 주인이 사용할 간단한 응용 프로그램을 만들려고합니다. 두 섹션이 필요합니다. 하나는 비용 발생을위한 것이고 다른 하나는 테이크 인을위한 것입니다. 내가 원한다면 나중에 파일을 애플 리케이션에로드 할 수있는 파일에 저장하는 것입니다. 파일을로드 할 때 테이블이나 다른 것과 같은 멋진 보고서 스타일로 데이터를 표시하려고합니다. 내 질문은판매 및 이익 데이터 저장 Java 파일 연습

  1. 파일을 저장하기에 적합한 형식은 무엇입니까? 모든 데이터가 단일 파일에 저장된다고 가정하십시오. 텍스트 또는 XML이 작업을 수행 할뿐만 아니라 다음 질문을 고려해야합니다.
  2. 저장할 때로드 된 데이터가 몇 줄 밖에 변경되지 않은 경우에도 전체 데이터를 파일에 다시 저장하지 않으려면 어떻게해야합니까?

제 질문은 다소 일반적인 것이지만 파일 조작에 대한 경험이 많지 않아 이전에 데이터베이스를 사용했습니다. 또한, 내가 무엇을 시도했는지 묻는다면 시도하지 않았지만 첫 번째 직관은 텍스트 또는 XML 형식으로 저장 한 다음 나중에 한 줄씩로드하는 것입니다. 몇 가지 지침을 주시면 감사하겠습니다.

+1

* 내 질문이 다소 일반적인 것으로 알고 있지만 파일 작업에 대한 경험이 많지 않습니다. * 연습을 시작한 후에는 혼자서 질문을 해결할 것입니다. –

답변

1

전체 파일을 다시 쓸 필요가 없도록 파일을 읽고 쓰는 동안 위치를 설정할 수 있습니다. 예를 들어 Reader#skip을 사용합니다. Suggested reading.

이제 특정 요소에 대한 행을 어떻게 결정합니까? 메타 구조이 필요합니다.이 구조를 통해 특정 요소에 대한 줄을 찾을 수 있습니다.

어떻게이 라인의 오프셋을 결정합니까? 고정 길이 행을 사용해야하므로 간단한 line*length을 사용할 수 있습니다. 이 경우 XML은 과도한 총량이되고 일반적으로 XML을 고정 길이로 채우지 않습니다. "고정 길이의 라인이 필요한 이유는 무엇입니까? 왜 위의 라인이 아닌 해당 라인의 오프셋을 저장하는 것이 좋을까요?"라고 말할 수 있습니다.하지만 나머지 메타 데이터를 모두 업데이트해야한다는 것을 곧 알게 될 것입니다. 한 줄의 길이가 변할 때 구조체.

이제 모든 내용은 입니다. 데이터베이스는 아마도 더 좋은 방법 인 일 것입니다. 이것은 정확하게 만들어진 것입니다. 파일 작업을 연습하기를 원한다면 (그리고 "실제 세계"에서 사용하기위한 것은 아닙니다) 자유롭게 진행하십시오.

+0

데이터베이스가 더 나은 옵션이라는 것을 알고 있지만 데이터베이스 관리 시스템이 설치되지 않은 컴퓨터에는 무엇을 권하고 싶습니까? 매일 컴퓨터 사용자가 사용하는 평범한 컴퓨터와 마찬가지입니다. – mavili

+0

몇 번의 클릭으로 설치할 수있는 자바 응용 프로그램을 가지고 일을 할 것입니다. 사람들은 프로그램을 사용하여 파일을 저장 한 다음 나중에로드하므로 PC에 DMBS를 보유해야하는 부담이되지 않습니다. – mavili

+0

DBMS는 몇 번의 클릭만으로 설치할 수 있으며 Java 프로그램은 설치없이 실행할 수 있습니다. 실제로 모든 컴퓨터는 하나가 설치되어 있고 프로그램은 자신의 작은 일을 대신 사용해야합니다. 그러나 어쨌든, 그것은 이상적인 세계입니다. DBMS의 순수 Java 구현 (외부 설치 필요 없음)을 찾을 수있을 것입니다. [SQLJet/sqlite4java (?)] (http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers) (SQLite를 보았습니다. 네이티브가 아닌)). – Dukeling