본문 바로가기

.NET/ASP.NET

ASP.NET .NET 프레임워크의 파일 I/O 시스템 바이트 스트림 예제 문자 스트림 , 바이트스트림

반응형
   
 

·System.IO 네임스페이스
§System.IO 네임스페이스는 위에서 설명한 스트림을 제어해주는 클래스, 그리고 파일 또는 디렉터리를 읽고 쓸 수 있도록 해주는 여러 클래스를 포함합니다.
§그러므로 C#에서 파일 I/O 시스템을 사용하기 위해서는 반드시 System.IO 네임스페이스를 추가(using)해 주어야 합니다. 
§System.IO 네임스페이스에는 매우 방대한 양의 클래스가 존재하지만 우리가 사용할 클래스는 다음과 같이 다섯 개로 뽑아낼 수 있습니다

 







//폴더가 없으면 에러난다~!!

protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)// 유효성 성공여부를 나타내는 값을 가져오는것
{
string strDir = @"D:\DATABANK\";
string originfile = FileUpload1.PostedFile.FileName;//컨트롤의 업로드파일내부
string destFile = strDir + FileUpload1.FileName; // 업로드할 파일네임
// Append 는 출력파일을 만드는데 출력 대상 파일이 존대하면 존재하는 파일의 끝에 새로운 내용을 추가

FileStream fileOpen = new FileStream(originfile, FileMode.Open);// 읽기위한파일스트림
FileStream fd = new FileStream(destFile, FileMode.Create); //쓰기위한 파일스트림

int i = 0;
do
{
i = fileOpen.ReadByte();
if (i != -1)
{
fd.WriteByte((byte)i);
}
} while (i != -1);

fileOpen.Close();
fd.Close();

Label1.Text = "원본파일 : " + originfile;
Label2.Text = "복사파일 : " + destFile;
}
}
}


설명

Append

출력 파일을 만듭니다. , 출력 대상이 되는 파일이 이미 존재할 경우에는

 존재하는 파일의 끝에 새로운 내용이 추가되며 출력 대상 파일이 없을 

경우에는 새로운 파일을 생성 합니다.

Create

출력 파일을 만듭니다. , 출력 대상이 되는 파일이 이미 존재할 경우에는 

존재하는 파일을 삭제하고 같은 이름의 새로운 파일을 생성 합니다.

CreateNew

새로운 출력 파일을 만듭니다.

Open

존재하는 파일을 엽니다.

OpenOrCreate

만약 파일이 존재하면 열고 그렇지 않으면 파일을 생성 합니다.

Truncate

존재하는 파일을 열지만 파일 안의 내용을 모두 지웁니다.




·문자 스트림
§.NET Framework에서는 유니코드(2바이트 인코딩 양식)를 사용하여 문자를 표시하므로 기본적으로 1바이트씩 읽는 바이트 스트림으로는 문자를 제대로 제어 할 수 없습니다.
§그래서 만들어진 것이 바로 문자 스트림이며 문자 스트림은 바이트 스트림을 래핑(wrapping)하여 만듭니다.