본문 바로가기

언어공부/Java

(83)
자바 - 네트워킹(Networking), 클라이언트와 서버(Client & Server) 자바 - 네트워킹(Networking), 클라이언트와 서버(Client & Server)에 대해서 알아보자. 네트워킹(Networking) 네트워킹이란 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크(network)를 구성하는 것을 말한다. 네트워킹의 개념은 컴퓨터들을 서로 연결하여 손 쉽게 주고받거나 또는 자원(프린터와 같은 주변기기)을 함께 공유하고자 하는 노력에서 시작 되었다. 지금은 셀 수도 없는 많은 수의 컴퓨터가 인터넷이라는 하나의 거대한 네트워크를 구성하고 있으며, 인터넷을 통해 다양하고 방대한 양의 데이터를 공유하는 것이 가능해졌다. 자바에서 제공하는 java.net패키지를 사용하면 네트워크 어플리케이션 작성이 가능하다. 클라이언트와 서버(Client & Server) 클라이언트&서버는 ..
자바 - 스트림을 이용해 파일 복사(카피)하기 자바에서 스트림을 이용해 파일 복사(카피)해보자. ex) 파일 복사하기 1 ex) 파일 복사하기 2-1 ex) 파일 복사하기 2-2
자바 - 직렬화(serialization), ObjectInputStream&ObjectOutputStream 자바 직렬화(serialization)에 대해서 알아보자. 직렬화(serialization) 직렬화란 객체를 데이터 스트림으로 만드는 것을 뜻한다. 객체에 저장된 데이터를 스트림에 쓰기(write)위해 연속적인 데이터로 변환하는것을 말한다. 반대로 스트림으로 부터 데이터를 읽어서 객체를 만드는 것을 역직렬화(deserialization)라고 한다. 객체는 클래스에 정의된 인스턴스 변수의 집합이다. 그래서 객체를 저장한다는 것은 객체의 모든 인스턴스 변수의 값을 저장한다는 것과 같은 의미이다. 또한 데이터들이 개별적으로 전송되는 것이 아니고 클래스 내부에 설계된 멤버들이 객체 단위로 파일에 기록하거나 쓴다는 의미이다. 객체를 저장하거나 전송하려면 직렬화가 필요하다. ObjectInputStream&Obje..
자바 - InputStreamReader&OutputStreamWriter , BufferedReader&BufferedWriter, FileReader&FileWriter 자바의 여러가지 Reader&Writer를 알아보자. InputStreamReader&OutputStreamWriter 바이트기반 스트림을 문자기반 스트림으로 연결시켜주는 역할을 한다. 그리고 바이트기반 스트림의 데이터를 지정된 인코딩의 문자데이터로 변환하는 작업을 수행한다. InputStreamReader는 Reader로부터 상속된 클래스로서 바이트 스트림을 문자 스트림으로 변환하는 기능을 제공해 준다. BufferedReader&BufferedWriter 버퍼를 이용해서 입출력의 효율을 높일 수 있도록 해주는 역할을 한다. 버퍼를 이용하면 입출력의 효율이 비교할 수 없을 정도로 좋아지기 때문에 사용하는 것이 좋다. BufferedReader는 Reader로 부터 상속된 클래스로 문자, 배열, 행을 버..
자바 - File, FileInputStream, FileOutputStream 자바 File, FileInputStream, FileOutputStream에 대해서 알아보자. File클래스 파일은 기본적이면서도 가장 많이 사용되는 입출력 대상이기 때문에 중요하다. 자바에서는 File클래스를 통해서 파일과 디렉토리를 다룰 수 있도록 하고있다. 그래서 File인스턴스는 파일일 수도 있고 디렉토리일 수도 있다. File클래스 생성자 File(String fileName) : 주어진 문자열(fileName)을 이름으로 갖는 파일을 위한 File인스턴스를 생성한다. 파일 뿐만 아니라 디렉토리도 같은 방법으로 다룬다. 여기서 fileName은 주로 경로(path)를 포함해서 지정해주지만, 파일 이름만 사용해도 되는데 이 경우 프로그램이 실행되는 위치가 경로(path)로 간주된다. File(S..
자바-InputStream과 OutputStream 자바 InputStream과 OutputStream에 대해서 알아보자. InputStream과 OutputStream은 바이트 기반 스트림이다. 바이트 기반은 입출력의 단위가 1 byte라는 뜻이다. InputStream은 바이트 입력 스트림의 최상위 추상클래스이며, OutputStream은 바이트 출력 스트림의 최상위 추상 클래스이다. ex) InputStream 예제 InputStream타입 myIn에 System.in를 대입해 키보드 입력장치와 연결하고, data에 myIn.read()로 한 바이트 씩 읽어들인다. 그리고 System.out.write로 char타입으로 data를 출력하며, read()가 더이상 읽어들일 값이 없으면 -1을 반환해서 무한반복이 종료된다. ex)OutputStream ..
자바 - 입출력(I/O), 스트림(stream), 바이트 기반 스트림(InputStream, OutputStream), 문자(텍스트) 기반 스트림(Reader, Writer) 자바 입출력(I/O)과 스트림(stream)에 대해서 알아보자. 입출력(I/O) I/O란 Input과 Output의 약자로 입력과 출력, 간단히 줄여서 입출력이라고 한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고 받는 것을 말한다. 예를 들어 키보드로부터 데이터를 입력받는다든가 System.out.println()을 이용해서 화면에 데이터를 출력한다던가 하는것이 가장 기본적인 입출력의 예이다. 스트림(stream) 자바에서 입출력을 수행하려면, 즉 어느 한쪽에서 다른쪽으로 데이터를 전달하려면, 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림(stream)이라고 정의한다. 데이터를 운반하는데 사용되는 연결통로로 볼 수 있다. 스트림은 연속적인 데이터의..
자바 예외 처리 방법 - finally키워드, try-with-resources 문장(jdk 1.7) 자바 예외 처리 방법인 finally키워드에 대해서 알아보자. finally 키워드 finally키워드 블록은 예외의 발생여부에 상관없이 실행되어야 할 코드를 포함시킬 목적으로 사용된다. try-catch문의 끝에 선택적으로 덧붙여 사용될 수 있으며, try-catch-finally의 순서로 구성된다. 예외가 발생한 경우에는 try-catch-finally로 실행되며, 예외가 발생하지 않은 경우에는 try-finally로 실행된다. 코드가 try문에서도 정상적으로 마쳐도 실행되어야 하거나, 예외가 발생해도 실행되어야 할때, finally에서 코드를 정의해 주는것이 좋다. a/b01에서 ArithmeticException 예외가 발생하므로 예외발생1이 출력되고, finally 블록이 실행된다. try-wi..