파일스트림에 대해서 알아보겠습니다,
역시나 소스는 당시 작업하던 판소리 분류 프로그램입니다.
 - 2010년인가,, 2011년인가.. 가물가물합니다.


요고를 보면, 파일쓰기와 읽기가 동시에 이해가 되실겁니다
주황색은 쓰기모드
빨간색은 읽기모드

         FileStream fs = new FileStream("ex.txt", FileMode.Append, FileAccess.Write);
// 쓰기모드로 ex.txt를 읽고요,Append는 덧붙이는겁니다, 쓰기모드
        FileStream fer = new FileStream("easttraining.txt", FileMode.Open, FileAccess.Read);
// 읽기모드, easttraining.txt 파일을 읽어옵니다

        StreamWriter sw; // 스트림 라이터를 생성합니다
        StreamReader sr; // 스트림 리더를 생성합니다

        //분류 관련 변수
        double[,] east = new double[55, 21]; // 55개의 동편제 학습데이터
        double[,] west = new double[55, 21]; // 55개의 서편제 학습데이터

        public void WriteTxt(string FileContents)
// FileContents는 클래스외부에서 기록할 내용
        {
            sw = new StreamWriter(fs); // 위에서 선언한 라이트할 파일스트림(fs)을 토대로 스트림 라이터를 인스턴스화시켜줍니다
            sw.Write(FileContents + "\r\n" + "\r\n");
// FileContents의 내용을 ex.txt에 저장하고 두줄 띄우기입니다. 한번 기록하고 두줄띄우고 
            sw.Flush(); // Flush() = 저장!
        } // 이러면 메모장에 저장이되요!!^^

        public void EastRead()
        {
            sr = new StreamReader(fer); // 위에서 선언한 읽을 파일스트림(fer)을 토대로 스트림 리더를 인스턴스화시켜줍니다
            int count = 0;

            while (!sr.EndOfStream) // 스트림의 맨끝까지! (느낌표있으니까 맨끝아니면 계속 읽어옵니다^^
            {
                string currentLine = sr.ReadLine(); // 한줄읽기
                string[] taps = currentLine.Split('\t'); // Split, 탭하나단위로 끊어서 읽어 메모장에 탭단위로 끊어서 저장했어욬ㅋㅋ

                for (int i = 0; i < 21; i++)
                {
                    east[count, i] = Convert.ToDouble(taps[i]);
                }
                count++; // 이 부분은 논리적인 부분, taps[i] 부분에 메모장에서 읽은 내용이 있습니다, 그것을 east배열 내부로 넣습니다!, east배열은 더블형이니까 더블형으로 바꿔주고 넣습니다, 안바꿔주면 스트링으로 읽혀서 형이 일치하지않아 에러가날겁니다^^
            }
            sr.Dispose(); // 내용들을 날려주세요^^ 메모리 비우기!                
        }


'Programming Language > C#' 카테고리의 다른 글

메서드 오버로딩  (0) 2014.05.13
Partial Class  (0) 2014.05.13
Get, Set - 클래스 간 값 공유  (0) 2014.05.13
실수형 나누기  (0) 2014.05.13
반올림  (0) 2014.05.13
Posted by 긍정왕오킹