2011. 9. 8. 17:20

파일 다루기


Stream 객체를 이용해서 파일을 읽고 저장합니다.  텍스트 파일을 읽어 올때 그리고 파일에 텍스트를 저장할때 다음 객체를 이용합니다.

* streamReader 객체                                   * StreamWrite 객체


네임스페이스

using System.IO;
using System.Text;


파일 읽기 스트림.
FileInfo 객체로 부터 스트림을 얻어 쓰는 예입니다. OpenText 메서드를 불러서 StreamReader 객체를 리턴 받습니다. 이 객체를 통해서 데이터를 읽어 옵니다. 마지막으로 스트림을 닫습니다.


메서드      설명
Read        스트림에 하나의 문자를 읽어서 int 형으로 리턴합니다. 파일 끝을 읽으면 -1 을 리턴합니다.
               예) int c = strm.Read();
Peek         스트림에서 다음에 가져올 문자를 미리 읽어보는 것입니다. 다음 데이터로 이동하지 않습니다.
               예) int c = strm.Peek();
ReadLine   스트림에 데이터를 한줄 씩 읽어서 문자열로 리턴합니다. 파일 끝을 읽으면 null 값을 리턴합니다.
               예) sring s = strm.ReadLine();
Read        스트림으로부터 읽어올 최대 데이터 개수를 지정하고, 버퍼에 데이터를 읽어옵니다. 읽어올 시작 인덱스를지정합니다.
               예) Read(char[] buffer, int index, int count);
ReadToEnd  스트림 처음부터 끝까지 데이터를 읽어서 strig 형으로 리턴합니다.
                예) strins s= strm.ReadToEnd();



file_Read.aspx

<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Text" %>
<script language="C#" runat=server>
void Page_Load(object sender, System.EventArgs e)
{
    string fname = Server.MapPath("test.txt");

    FileStream fs = new FileStream( fname,
                        FileMode.Open, FileAccess.Read );

    StreamReader reader = new StreamReader(fs);
    while( true )
    {
       string str = reader.ReadLine();
       if ( str == null ) break;

       Response.Write( str +"<br>" );
    }
    reader.Close();
   
    fs.Close();
}
</script>

* file_Write.aspx


<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Text" %>
<script language="C#" runat=server>
void Page_Load(object sender, System.EventArgs e)
{
    string fname = Server.MapPath("test.txt");

    FileStream fs = new FileStream( fname,
                        FileMode.OpenOrCreate, FileAccess.Write );

    StreamWriter writer = new StreamWriter(fs);
    writer.WriteLine( "파일에 저장합니다." );
    writer.WriteLine( "현재 시간 " + DateTime.Now );
    writer.Close();

    fs.Close();
    Response.Write( "[" + fname + "] 에 저장했습니다." );
}
</script>