'C# > Network' 카테고리의 다른 글
GetHostName 및 GetHostByName (0) | 2012.06.13 |
---|---|
C# POSTDATA 파일 업로드 (0) | 2012.06.04 |
Socket Server 연결 Sample (0) | 2012.04.18 |
Socket Client 연결 Sample (0) | 2012.04.18 |
네트워크 바이트 오더 변경 클래스 (0) | 2012.04.17 |
GetHostName 및 GetHostByName (0) | 2012.06.13 |
---|---|
C# POSTDATA 파일 업로드 (0) | 2012.06.04 |
Socket Server 연결 Sample (0) | 2012.04.18 |
Socket Client 연결 Sample (0) | 2012.04.18 |
네트워크 바이트 오더 변경 클래스 (0) | 2012.04.17 |
/*
MyHeight 의존 프로퍼티 선언
PropertyMetadata 의 Default 값을 줄 때 해당 데이터형으로 캐스팅을 하지 않으면 문제가 발생할수 있다.
*/
public static readonly DependencyProperty MyHeightProperty =
DependencyProperty.Register ("MyHeight", typeof (double), typeof (MainPage),
new PropertyMetadata ((double) 0, new PropertyChangedCallback (OnMyHeightChanged)));
/*
프로퍼티 수정시 처리하는 핸들러
*/
private static void OnMyHeightChanged (DependencyObject d, DependencyPropertyChangedEventArgs args)
{
((MainPage)d).OnMyHeightChanged (args);
}
/*
실제 데이터를 처리할 핸들러
*/
protected virtual void OnMyHeightChanged (DependencyPropertyChangedEventArgs args)
{
// 로직
}
/*
의존 프로퍼티
*/
public double MyHeight
{
get { return (double) GetValue (MyHeightProperty); }
set { SetValue (MyHeightProperty, value); }
}
public MainPage ()
{
/*
스크롤Viewer 의 ExtentHeight 와 MyHeight 를 연결한다.
*/
// 데이터 바인딩..
Binding newBinding = new Binding ("ExtentHeight");
newBinding.Source = sView;
// 바인딩 데이터를 연결한다.
SetBinding (MyHeightProperty, newBinding);
}
ItemSource 로 데이터를 넣었을 때 수정시 데이터 반영을 하려면.. (0) | 2012.06.12 |
---|---|
의존 프로퍼티에 대해 잘 설명되어있는 사이트 (0) | 2012.06.04 |
TreeView 기본 틀 (0) | 2012.06.01 |
실버라이트 자바스크립트와 통신 (0) | 2012.05.23 |
실버라이트 툴킷 다운로드 주소 (0) | 2012.04.19 |
ItemSource 로 데이터를 넣었을 때 수정시 데이터 반영을 하려면.. (0) | 2012.06.12 |
---|---|
실버라이트 의존 프로퍼티와 컨트롤 속성 연결 (0) | 2012.06.04 |
TreeView 기본 틀 (0) | 2012.06.01 |
실버라이트 자바스크립트와 통신 (0) | 2012.05.23 |
실버라이트 툴킷 다운로드 주소 (0) | 2012.04.19 |
<!-- 네임 스페이스 선언 -->
<UserControl x:Class="FreeTest.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sdk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
실버라이트 의존 프로퍼티와 컨트롤 속성 연결 (0) | 2012.06.04 |
---|---|
의존 프로퍼티에 대해 잘 설명되어있는 사이트 (0) | 2012.06.04 |
실버라이트 자바스크립트와 통신 (0) | 2012.05.23 |
실버라이트 툴킷 다운로드 주소 (0) | 2012.04.19 |
Visual Studio 2010 용 SilverLight 4 SDK 다운로드 주소 (0) | 2012.04.19 |
닷넷 강의를 듣다가 한번 쯤 정리하고 싶어서 정리 했다. ^^ 필요한 내용임~
C#.NET 입출력 정리
스트림
입, 출력 작업을 대행해 주는 중간 매개체
- 입, 출력의 대상이 되는 장치에 상관없이 동일한 방법으로 자료 조정
스트림의 종류
- 입력 스트림 : TextReader, BinaryReader
- 출력 스트림 : TextWriter, BanaryWrtier
- 스트림 클래스는 입출력이 동시에 사용 가능함
.NET 에서 파일과 디렉토리 클래스
FileSystemInfo |
파일 시스템 객체를 나타내는 클래스 |
Directory, DirectoryInfo |
디렉토리를 나타내는 기본 클래스 |
File, FileInfo |
파일을 나타내는 기본 클래스 |
Path |
경로를 조정하기 위한 클래스 |
File 클래스
- 입출력에 관련된 클래스들 중 기본이 되는 클래스
- 파일에 관련된 정보를 제고
- FileStream 의 객체를 생성하여 파일의 입출력 작업을 수행
- 클래스 내의 맴버 메서드들은 public static 으로 되어있음
- 파일 관련 정보 (파일 존재 여부, 파일 생성 시간, 엑세스 시간, 최종 수정시간 등…)
- 파일 삭제, 복사, 이동 가능
File 클래스 주요 메서드
File.Copy |
파일을 복사 한다. |
File.Copy (“File.Test.cs”, “Output.txt”, true); |
File.Exists |
파일이 존재 하는지 체크한다. |
File.Exists (“Output.txt”); |
File.GetCreationTime |
파일 생성 시간을 리턴한다. |
|
File.OpenRead |
FileStream 을 리턴한다. |
|
문자 스트림 생성 예제
FileStream fs = File.OpenRead (”poet.txt”); StreamReader r = new StreamReader (fs, System.Text.Encoding.Default);
// 문자 스트림 변환 r.BaseStream.Seek (0, SeekOrigin.Begin); while (r.Peek () > -1) Console.WriteLine (r.ReadLine ()); r.Close (); |
Directory 클래스
Directory.CreateDirectory |
디렉터리 생성 |
Directory.Exists |
디렉토리 존재 확인 |
Directory.GetFiles |
파일 리스트를 리턴한다. |
Directory.GetDirectories |
디렉토리 리스트를 리턴한다. |
|
|
|
|
Path 클래스
Path.DirectorySeparatorChar |
디렉토리 구분 문자 |
Path.Combine |
패스를 합친다. |
Path.GetFileName |
파일 이름을 리턴한다. |
|
|
Stream 클래스
- Stream 클래스는 추상 클래스
- 바이트 단위로 데이터를 처리하는 바이트 스트림 클래스들 중 최 상위 기본 클래스
- 바이트 스트림 클래스
- 파일, 입출력 장치, 프로세스 사이의 통신, Socket 통신 등에서 사용
FileStream 클래스
- 파일을 읽고 쓰는 기능을 제공하는 클래스
- Stream 클래스 상속
- 바이트 스트림에 속함
- 스트림 생성하는 곳은 파일
l 파일 쓰기 예제
String path = @”C:\Test.txt”;
FileStream fs = new FileStream (path, FileMode.Create); StreamWriter sw = new StreamWriter (fs, System.Text.Encoding.Default); sw.BaseStream.Seek (0, SeekOrigin.End);
sw.WriteLine (“-------------------------------“); sw.WriteLine (“테스트 이다.“); sw.WriteLine (“-------------------------------“);
sw.Flush (); sw.Close (); |
*. 파일 읽기 예제
FileStream fs = new FileStream (path, FileMode.OpenOrCreatem, FileAccess.Read);
StreamReader sr = new StreamReader (fs, System.Text.Encoding.Default); sr.BaseStream.Seek (0, SeekOrigin.Begin);
while (sr.Peek () > -1) Console.WriteLine (sr.ReadLine ());
sr.Close (); |
BufferedStream
- 버퍼 기능을 가진 바이트 스트림
- 내부적으로 버퍼 기능을 제공해 주는 스트림
- 입력에 대한 버퍼링과 출력에 대한 버퍼링을 지원
- 버퍼링 BufferedStream 클래스의 Flush () 메서드가 호출되면 한번에 데이터를 쓴다.
FileStream fs = new FileStream (path, FileMode.OpenOrCreatem, FileAccess.Read);
BufferedStream bi = new BufferedStream (fs);
.. 처리
bi.Close (); |
MemoryStream 클래스
- 메모리를 목표지점을 하드웨어적인 장치나 파일이 아닌 메모리를 그 대상으로 하고 있는 바이트 스트림
- 메모리 공간에 상주되어 있는 데이터를 목표지점으로 함
- 부호 없는 바이트 배열로 저장된 데이터를 캡술화 함
byte [] values = new byte [] {0, 1, 2, 3, 4, 5, 6};
MemoryStream ms = new MemoryStream (values);
int temp = 0;
while ((temp = ms.ReadByte ()) != -1) Console.Write (temp);
ms.Close (); |
TextReader & TextWriter 클래스
- 문자 스트림의 입출력을 관장하는 최상위 추상 기본 클래스
- 해당 데이터가 문자라고 가정, 문자의 인코딩을 검사 후 문자의 인코딩에 따라 자동으로 문자 해석
- C# 에서 사용하는 문자 포멧인 유니코드로 변환
- 하위 클래스들에게 자신들의 메서드를 재정의 해서 사용할 수 있는 역할 제공
- TextReader : 16비트의 유니코드 형식으로 데이터를 읽음
- TextWriter :
StringReader, StringWriter 클래스
- 문자열을 스트림에 기록하거나 읽어낼 때 사용하는 클래스
- 목표 지점은 String 형의 데이터
- TextReader 클래스와 TextWriter 클래스를 각각 상속
String str = “abcdef”;
StringReader s = new StringReader (str); StringWriter w = new StringWriter ();
While ((ch = s.Read ()) != -1) Sw.Write ((char) ch);
s.Close (); w.Close (); |
StreamReader, StreamWriter 클래스
- 바이트 스트림을 문자 스트림으로 바꾸어 주는 역할을 담당하는 스트림
- 기본적으로 TextReader와 TextWriter 에서 상속
BinaryReader & BinaryWriter 클래스
- 데이터 타입에 해당하는 메모리 사이즈에 따라서 바이너리 형식으로 읽음
스트림을 이용하여 웹페이지 받기
- 스트림을 사용하여 웹페이지를 읽어오는 원리
- 네트워크에 연결된 스트림을 생성 후 그 스트림으로 데이터를 읽어오는 것
- WebRequest 클래스와 WebResponse 클래스 사용
int length = 1024; char [] buffer = new char [length];
WebRequest req = WebRequest.Create (http://aaaaa); WebResponse res = request.GetResponse ();
StreamReader sr = new StreamReader (response.GetResponseStream (), System.Text.Encoding.Default);
int count = 0;
do { count = sr.Read (buffer, 0, length); Console..WriteLine (buffer); } while (count > 0)
sr.Close (); |
웹브라우져 띄우기 (0) | 2012.06.22 |
---|---|
날짜형 파싱하여 DateTime 형으로 만들기 (0) | 2012.06.13 |
const 와 readonly 의 차이 (0) | 2012.05.02 |
C# 컬렉션 - 1 (0) | 2012.05.02 |
foreach 랑 indexer (0) | 2012.05.02 |
실버라이트 의존 프로퍼티와 컨트롤 속성 연결 (0) | 2012.06.04 |
---|---|
의존 프로퍼티에 대해 잘 설명되어있는 사이트 (0) | 2012.06.04 |
TreeView 기본 틀 (0) | 2012.06.01 |
실버라이트 툴킷 다운로드 주소 (0) | 2012.04.19 |
Visual Studio 2010 용 SilverLight 4 SDK 다운로드 주소 (0) | 2012.04.19 |
const : 상수화
*. 초기화와 동시에 값을 셋팅해야 된다.
*. 자동으로 static 으로 선언된다.
readonly : 읽기 전용
*. 초기화를 안해줘도 괜찮다.
*. 딱 한번만 값을 설정할수 있다.
*. static 키워드를 붙이지 않으면 static 으로 동작하지 않는다.
날짜형 파싱하여 DateTime 형으로 만들기 (0) | 2012.06.13 |
---|---|
C#.NET 입출력 관련 정리 (0) | 2012.05.24 |
C# 컬렉션 - 1 (0) | 2012.05.02 |
foreach 랑 indexer (0) | 2012.05.02 |
Dictionary .. (Generic 으로된 Hashtable) (0) | 2012.05.02 |
컬렉션의 기본 인터페이스 : System.Collections
IEnumerable 과 IEnumerator 인터페이스
IEnumerable : 컬렉션 클래스가 구현을 해야 되는 인터페이스
IEnumerator : 컬렉션 클래스가 IEnumerable 을 구현했다면 IEnumerator 을 이용하여 데이터 접근 가능
IEnumerable 은 GetEnumerator 을 구현해야한다.
기본 예제 )
string [] a = {"A", "B", "C", "D", "E", "F"};
IEnumerator e = a.GetEnumerator ();
while (e.MoveNext ())
{
System.out.println ((String) e.Current);
}
ICollection 인터페이스
- ICollection 은 IEnumerable 을 상속한다.
- 주요 맴버
- Count : 컬렉션의 객체수 반환
- IsSynchronuzed : 컬렉션에 대한 접근 동기화 여부
- SyncRoot : 동기화 객체
ICollection c = a; // 배열은 ICollection 으로 캐스팅이 가능하다.
C#.NET 입출력 관련 정리 (0) | 2012.05.24 |
---|---|
const 와 readonly 의 차이 (0) | 2012.05.02 |
foreach 랑 indexer (0) | 2012.05.02 |
Dictionary .. (Generic 으로된 Hashtable) (0) | 2012.05.02 |
ini 파일 Class (0) | 2012.04.19 |
foreach 문법도 완전 초햇갈려 아웅 미쳐
foreach (타입 변수명 in 배열 또는 컬랙션)
{
}
->
foreach (int a in intArr)
{
}
이당
Indexer
public 데이터타입 this[int index]
{
get { }
set { }
}
이다.
당연한것이지만 get 은 리턴을 해야된다 -_-;;
const 와 readonly 의 차이 (0) | 2012.05.02 |
---|---|
C# 컬렉션 - 1 (0) | 2012.05.02 |
Dictionary .. (Generic 으로된 Hashtable) (0) | 2012.05.02 |
ini 파일 Class (0) | 2012.04.19 |
오버라이딩 (0) | 2012.04.19 |