나는 유틸리티 작업을하고 있습니다.FileStream 상단에 데이터 추가
파일의 맨 위에 데이터를 추가하고 싶지만 추가하지 않고 덮어 쓰고 있습니다. 예를 들어
: 지금은 현재 행하기 전에 "뭔가 더 여기에 기존의"추가 할
여기에 기존
뭔가 다음 file.txt를 고려하십시오. 2 FileStreams를 사용하지 않고 할 수있는 방법이 있습니까?
나는 유틸리티 작업을하고 있습니다.FileStream 상단에 데이터 추가
파일의 맨 위에 데이터를 추가하고 싶지만 추가하지 않고 덮어 쓰고 있습니다. 예를 들어
: 지금은 현재 행하기 전에 "뭔가 더 여기에 기존의"추가 할
여기에 기존
뭔가 다음 file.txt를 고려하십시오. 2 FileStreams를 사용하지 않고 할 수있는 방법이 있습니까?
아니요 파일 시스템은 기본적으로 파일에 데이터를 삽입하는 것을 지원하지 않습니다. 파일의 끝에 추가하거나 기존 데이터를 덮어 씁니다. 적어도, 나는 이을 지원하는 파일 시스템을 모르며 표준 API는이를 지원하지 않습니다.
다른 방법으로 파일을 변경하려면 가장 좋은 방법은 이전 파일을 작성한 후 필요한 경우 이전 파일에서 읽은 다음 새 파일을 작성하는 것입니다. 그런 다음 이전 파일을 삭제하고 새 파일의 이름을 이전 파일과 동일한 이름으로 변경합니다.
(이의 안전한 버전은 다음 이전 파일을 삭제 한 다음 새 파일의 이름을 변경, 이전 파일의 이름을 변경 포함 - 아무것도 잘못되면이 복구 할 수 있습니다.)
감사합니다. 이상한 종류. Thx 나는 2 스트림을 사용하여 주위에 얻을 것이다. – cbrcoder
번호 파일이 삽입이없는 모드 프로세서는 워드 프로세서와 같은 방식입니다.
미안하지만, 당신이 듣고 싶지는 않지만 사실입니다.
아 .... 나는 기본적으로 존 스켓과의 응답 시간과 정확성에 묶여있다 ... 나는 여전히 잃는다. 그의 위대함을 보라. – abelenky
예
하여 FileStream FS = 새로운하여 FileStream
(경로 2, FileMode.OpenOrCreate, FileAccess.ReadWrite);sw = 새 StreamWriter (fs);
sw.BaseStream.Seek (0, 0);
sw.WriteLine ("write new text");
sw.close()
이 방법은 기존의 데이터와 유사한 인서트를 덮어 대체 할 것이다.
코드를 보여주세요! – Cerebrus
Cerebrus, 나는 최대한 간단하게 말했다. 존이 대답을 찾았습니다. 감사. – cbrcoder