'Software > Programming' 카테고리의 다른 글
extern 변수 선언 (0) | 2017.01.16 |
---|---|
const 키워드 (0) | 2016.06.28 |
LNK2019 Link Error (0) | 2016.06.28 |
유니코드, 멀티바이트, 중간문자 (0) | 2016.06.27 |
참조자 & (0) | 2016.06.27 |
extern 변수 선언 (0) | 2017.01.16 |
---|---|
const 키워드 (0) | 2016.06.28 |
LNK2019 Link Error (0) | 2016.06.28 |
유니코드, 멀티바이트, 중간문자 (0) | 2016.06.27 |
참조자 & (0) | 2016.06.27 |
extern 변수 선언 (0) | 2017.01.16 |
---|---|
static_cast와 reinterpret_cast (0) | 2016.06.28 |
LNK2019 Link Error (0) | 2016.06.28 |
유니코드, 멀티바이트, 중간문자 (0) | 2016.06.27 |
참조자 & (0) | 2016.06.27 |
static_cast와 reinterpret_cast (0) | 2016.06.28 |
---|---|
const 키워드 (0) | 2016.06.28 |
유니코드, 멀티바이트, 중간문자 (0) | 2016.06.27 |
참조자 & (0) | 2016.06.27 |
C++ 생성자를 이용한 ThreadSync (0) | 2016.06.25 |
const 키워드 (0) | 2016.06.28 |
---|---|
LNK2019 Link Error (0) | 2016.06.28 |
참조자 & (0) | 2016.06.27 |
C++ 생성자를 이용한 ThreadSync (0) | 2016.06.25 |
C++ Friend (0) | 2016.06.25 |
중요!<Call by reference>
함수인자에 참조자를 사용한 경우, 값복사가 아니라 주소참조가 된다.
ex)
(1)
BOOL ExampleFunction(DWORD &packetLength)
{
...
}
(2)
BOOL ExampleFunction(DWORD packetLength)
{
...
}
(2)의 경우 함수를 사용하면 진입했을 때 인자는 값을 복사해온것이다. 실제 넣었던 인자와는 포인터적으로 무관계하다.
(1)의 경우 함수를 사용하면 진입했을 때의 인자는 실제 넣었던 인자와 같은 주소를 사용한다.
LNK2019 Link Error (0) | 2016.06.28 |
---|---|
유니코드, 멀티바이트, 중간문자 (0) | 2016.06.27 |
C++ 생성자를 이용한 ThreadSync (0) | 2016.06.25 |
C++ Friend (0) | 2016.06.25 |
형 변환 연산자: static_cast와 reinterpret_cast의 차이 [출처] 형 변환 연산자: static_cast와 reinterpret_cast의 차이|작성자 SCIILiberty (0) | 2016.06.23 |
유니코드, 멀티바이트, 중간문자 (0) | 2016.06.27 |
---|---|
참조자 & (0) | 2016.06.27 |
C++ Friend (0) | 2016.06.25 |
형 변환 연산자: static_cast와 reinterpret_cast의 차이 [출처] 형 변환 연산자: static_cast와 reinterpret_cast의 차이|작성자 SCIILiberty (0) | 2016.06.23 |
static_assert (0) | 2016.06.23 |
참조자 & (0) | 2016.06.27 |
---|---|
C++ 생성자를 이용한 ThreadSync (0) | 2016.06.25 |
형 변환 연산자: static_cast와 reinterpret_cast의 차이 [출처] 형 변환 연산자: static_cast와 reinterpret_cast의 차이|작성자 SCIILiberty (0) | 2016.06.23 |
static_assert (0) | 2016.06.23 |
singleton 패턴과 volatile---DCL(Double Checking Locking) (0) | 2016.04.15 |
C++ 생성자를 이용한 ThreadSync (0) | 2016.06.25 |
---|---|
C++ Friend (0) | 2016.06.25 |
static_assert (0) | 2016.06.23 |
singleton 패턴과 volatile---DCL(Double Checking Locking) (0) | 2016.04.15 |
volatile(Java) (0) | 2016.04.15 |
C++ Friend (0) | 2016.06.25 |
---|---|
형 변환 연산자: static_cast와 reinterpret_cast의 차이 [출처] 형 변환 연산자: static_cast와 reinterpret_cast의 차이|작성자 SCIILiberty (0) | 2016.06.23 |
singleton 패턴과 volatile---DCL(Double Checking Locking) (0) | 2016.04.15 |
volatile(Java) (0) | 2016.04.15 |
volatile(C,C++) (0) | 2016.04.15 |
○스트림 : 데이터를 운반하는데 사용되는 연결통로
기반스트림 : 보조스트림의 부모가 되는 클래스
입력스트림 |
출력스트림 |
입출력 대상 종류 |
FileInputStream |
FileOutputStream |
파일 |
ByteArrayInputStream |
ByteArrayOutputStream |
메모리(byte배열) |
PipedInputStream |
PipedOutputStream |
프로세스(프로세스간의 통신) |
AudioInputStream |
AudioOutputStream |
오디오 장치 |
○보조스트림
-주 스트림의 기능을 보완하기 위한 스트림
-실제 데이터를 주고받는 스트림은 아님
-스트림의 기능을 향상시키거나 새로운 기능을 추가
사용법 : 주 스트림을 먼저 생성한 다음 이를 이용하여 보조스트림 생성
ex)
1. 기반스트림 생성
FileInputStream fis = new FileInputStream("test.txt");
2. 보조스트림 생성
BufferedInputStream bis = new BufferedInputStream(fis);
3. 보조스트림 사용
bis.read();
종류
입력 |
출력 |
|
FilterInputStream |
FilterOutputStream |
|
BufferedInputStream |
BufferedOutputStream |
|
DataInputStream |
DataOutputStream |
|
SequenceInputStream |
SequenceOutputStream |
|
LineNumbreInputStream |
|
|
ObjectInputStram |
ObjectOutputStream |
|
|
PrintStream |
|
PushbackInputStream |
|
|
○문자기반 스트림
-바이트 기반 스트림은 1byte를 기반으로 하므로 java와 같이 문자가 2byte기반인 언어에서는 문자를 처리하는데 어려움이 있다. 문자데이터를 입출력 할 때는 문자기반 스트림을 사용하는 것이 유리하다.
바이트기반 스트림과 문자기반 스트림
바이트기반 스트림 |
문자기반 스트림 |
FileInputStream FileOutputStream |
FileReader FileWriter |
ByteArrayInputStream ByteArrayOutputSTream |
CharArrayReader CharArrayWriter |
PipedInputStream PipedOutputStream |
PipedReader PipedWriter |
StringBufferInputStream(deprecated) StringBufferOutputStream(deprecated) |
StringReader StringWriter |
바이트기반 보조스트림과 문자기반 보조스트림
바이트기반 보조스트림 |
문자기반 보조스트림 |
BufferedInputStream BufferedOutputStream |
BufferedReader BufferedWriter |
FilterInputStream FilterOutputStream |
FilterReader FilterWriter |
LineNumberInputStream(deperecated) |
LineNumberReader |
PrintStream |
PrintWriter |
PushbackInputStream |
PushbackReader |