FileStream : 파일의 읽기/쓰기 작업을 모두 지원한다.
StreamWriter : 지정경로의 지정파일에 대한 StreamWriter 클래스의 새 인스턴스를 초기화한다.
해당 파일이 있으면 덮어쓰거나 추가합니다. 해당 파일이 없으면 이 생성자는 새 파일을 만든다.
FileStream을 사용하기위해 임의로 파일의 저장경로를 선언 할 변수를 만들고 시작한다. 밑에서는 변수 defaultPath 사용.
string defaultPath = Server.MapPath(ConfigurationManager.AppSettings["LoginPath"]);
DateTime NowDate = DateTime.Today;
string toDay = NowDate.ToString().Replace("-", "").Substring(0, 8);
defaultPath += toDay + ".txt";
파일생성
if (!fInfo.Exists)
{
fInfo.Create();
}
FileInfo fInfo = new FileInfo(파일이저장된경로)
fInfo : defaultPath 경로에 파일정보를 가져온다.
if문으로 제어, 해당 경로에 해당 파일정보가 존재하지 않는다면 true.
fInfo의 정보대로 해당경로의 해당파일을 생성(.Create)
or
글쓰기
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
sw.WriteLine(출력 할 글의 내용);
sw.Flush();
sw.Close();
FileStream fs = new FileStream(파일이저장된경로, FileMode.Open, FileAccess.ReadWrite);
sw.Flush()- Flush는 꼭 사용하지 않아도 될때도 있지만, 없어서 에러가나는 경우가 있기때문에 이왕이면 표기.
지정한 경로(defaultPath)에 위치한 파일에 해당글("출력 할 글의 내용")을 출력한다.
아쉬운점은?
- 위와 같은방법으로 코딩하면 파일이 없을 경우 에러발생.
- 글을 누적으로 저장 불가능.
(위와같은 방식으로 한다면, 두 번째 쓴 글의 내용이 첫 번째 쓴 글의 내용을 덮어서 출력된다.)
첫 번째 저장: sw.WriteLine(맛있는);
두 번째 저장: sw.WriteLine(아침);
원하는 결과: 맛있는아침
기존 출력결과: 아침
그럼 누적되게 출력하려면?
.AppendText()를 사용하면 [기존에있던 글 + 새로작성 글]로 출력 할 수 있다.
거기에 플러스알파로 .AppendText()를사용하면 fInfo.Create()를 별도로 추가하지 않아도 해당파일이 없으면 파일을 만들어주고
해당파일이 존재하면 해당파일에 글을 써준다.
파일생성과 글쓰기를 동시에
StreamWriter sw = fInfo.AppendText();
sw.WriteLine(출력 할 글의 내용);
sw.Flush();
sw.Close();
'ASP.NET' 카테고리의 다른 글
ASP.NET PostBack (다시게시) (0) | 2011.06.15 |
---|---|
ASP.NET Session (0) | 2011.06.14 |
ASP.NET 엑셀 다운로드하기- DB결과 엑셀로 (0) | 2011.06.02 |
ASP.NET 접속자 IP찾기 (0) | 2011.05.17 |
Enter를 <br / >로 바꿔주기 (0) | 2011.05.16 |