Microsoft MVP성태의 닷넷 이야기
filestream seek에 대해 질문있습니다. [링크 복사], [링크+제목 복사],
조회: 16642
글쓴 사람
이소정 (10godysy at naver.com)
홈페이지
첨부 파일
 

filestream을 통해 파일을 불러와 richbox에 넣고있습니다.

byte[] read = new byte[1024];

fileStream.Read(read, 0, Convert.ToInt32(read.Length));

readStartPosition = fileStream.Seek(read.Length, SeekOrigin.Begin);

richbox에 넣으면 처음부터 1024까지 문자열이 보여집니다.

문제는 여기서인데... 다시 같은 파일을 불러오면 1024 다음 문자부터 문자1024개가 richbox에 출력이 되야하는데 안됩니다..

다시 같은 파일을 불러오면, 처음 부터 1024까지 문자열이 보여집니다.

if(textBox1.TextLength != 0)
{
    readStartPosition = fileStream.Seek(read.Length+1, SeekOrigin.Current);

    byte[] aaa = new byte[fileStream.Position];

    fileStream.Read(aaa, 0, Convert.ToInt32(readStartPosition));

}

richTextBox1.AppendText를 이용해 출력을 합니다.

디버깅해보니까 aaa = 2048 , read.Length = 1024, readStartPoition = 2048 입니다..

왜 그런지 모르겠습니다..

filestream.seek는 스트림의 현재 위치를 제공된 값으로 설정합니다. 라고 나와있는데.. 왜 1024다음 부터 안나오는지 머가 문제인지 쫌 알려주세요 ㅠㅠ

 








[최초 등록일: ]
[최종 수정일: 10/27/2014]


비밀번호

댓글 작성자
 



2014-10-28 12시13분
간단한 재현 코드를 담은 프로젝트를 올려주세요. 얼핏 보기로는 순차적으로 파일을 읽는 것 같은데, 굳이 FileStream.Seek 메서드를 호출해야 할 이유가 있을까요? 그냥 1024 바이트 버퍼로 Read 메서드를 반복해서 호출하는 식으로 구현하는 것이 더 낫습니다. (그리고, ... 메서드들의 정확한 사용법을 아직 숙지하지 못하신 것 같습니다.)
정성태

NoWriterDateCnt.TitleFile(s)