2009-06-30 9 views
1

나는 유틸리티 작업을하고 있습니다.FileStream 상단에 데이터 추가

파일의 맨 위에 데이터를 추가하고 싶지만 추가하지 않고 덮어 쓰고 있습니다. 예를 들어

: 지금은 현재 행하기 전에 "뭔가 더 여기에 기존의"추가 할

여기에 기존

뭔가 다음 file.txt를 고려하십시오. 2 FileStreams를 사용하지 않고 할 수있는 방법이 있습니까?

+0

코드를 보여주세요! – Cerebrus

+0

Cerebrus, 나는 최대한 간단하게 말했다. 존이 대답을 찾았습니다. 감사. – cbrcoder

답변

2

아니요 파일 시스템은 기본적으로 파일에 데이터를 삽입하는 것을 지원하지 않습니다. 파일의 끝에 추가하거나 기존 데이터를 덮어 씁니다. 적어도, 나는 을 지원하는 파일 시스템을 모르며 표준 API는이를 지원하지 않습니다.

다른 방법으로 파일을 변경하려면 가장 좋은 방법은 이전 파일을 작성한 후 필요한 경우 이전 파일에서 읽은 다음 새 파일을 작성하는 것입니다. 그런 다음 이전 파일을 삭제하고 새 파일의 이름을 이전 파일과 동일한 이름으로 변경합니다.

(이의 안전한 버전은 다음 이전 파일을 삭제 한 다음 새 파일의 이름을 변경, 이전 파일의 이름을 변경 포함 - 아무것도 잘못되면이 복구 할 수 있습니다.)

+0

감사합니다. 이상한 종류. Thx 나는 2 스트림을 사용하여 주위에 얻을 것이다. – cbrcoder

1

번호 파일이 삽입이없는 모드 프로세서는 워드 프로세서와 같은 방식입니다.

미안하지만, 당신이 듣고 싶지는 않지만 사실입니다.

+0

아 .... 나는 기본적으로 존 스켓과의 응답 시간과 정확성에 묶여있다 ... 나는 여전히 잃는다. 그의 위대함을 보라. – abelenky

0

하여 FileStream FS = 새로운하여 FileStream

(경로 2, FileMode.OpenOrCreate, FileAccess.ReadWrite);

sw = 새 StreamWriter (fs);

sw.BaseStream.Seek (0, 0);

sw.WriteLine ("write new text");

sw.close()

이 방법은 기존의 데이터와 유사한 인서트를 덮어 대체 할 것이다.

관련 문제