파일스트림에 대해서 알아보겠습니다,
역시나 소스는 당시 작업하던 판소리 분류 프로그램입니다.
- 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 |