⁂ Java/: 기본 익히기

    [JAVA] #10-3 입출력스트림 : 출력(Output)

    1. 출력 시키기 입력하는 방법을 배웠으니 이번엔 출력이다! 우선 출력은 어디에 출력을 할 것인가가 중요하다. 그리고 그 파일이 실제로 있는지 없는지에 따라서도 다르게 동작한다. 입력은 파일이 꼭 있어야 했다. 하지만 출력은 파일이 없다면 자바가 알아서 생성해준다. 오히려 파일이 있을 때가 자바가 고민을 한다. 이것을 덮어쓸 것인지(overwrite), 아래에다가 추가해줄 것인지(append) 말이다. 이제 출력에 대한 클래스를 살펴보자 byte형으로는 OutputStream이 있고 char형으로는 Writer가 있다. 우리는 한글을 다룰 것이기 때문에 Writer형으로 작성하는 방법을 살펴보려 한다. 2. 코드 살펴보기 package oop0920; import java.io.FileWriter; im..

    [JAVA] #10-2 입출력스트림 : 입력(Input) - BufferedReader

    1. 메모장 파일의 내용을 엔터 단위로 가져오기(BufferedReader) 이전 게시글에서는 메모장 파일의 내용을 모두 가져오는 작업을 하였다. 이번에는 메모장 파일의 내용을 엔터 단위로 가져오는 작업을 해보려 한다. 이 때 사용하는 것이 BufferedReader이다. 여기서 버퍼란 우리가 흔히 쓰는 버퍼링의 그 버퍼가 맞다. 여기서 잠시 버퍼에 대해 이해를 살짝 하고 가보자. 키보드는 입력할 때마다 프로그램에 입력이 되기 마련이다. 하지만 버퍼를 사용해서 입력을 할 때는 버퍼가 가득 차거나 특정한 개행 문자가 나타나면 버퍼의 내용을 한번에 전송시키는 방식을 취한다. 어찌 보면 키보드로 프로그램에 다이렉트로 입력하는 것이 더 빠를 것 같지만 버퍼 방식이 훨씬 더 빠르다. 그 이유로는 원래 데이터 입출..

    [JAVA] #10-1 입출력스트림 : 입력(Input) - byte형과 char형

    1. 입출력 스트림 프로그램은 데이터를 읽고 출력하는 작업을 계속해서 수행한다. 데이터는 개발자들의 키보드로도 입력될 수도 있지만 파일이나 네트워크에서도 입력될 수 있다. 반대로 모니터로 출력이 될 수 있지만 파일이나 네트워크 상으로 출력될 수 있다. 자바에서도 HTML이나 CSS처럼 버튼을 만들 수도 있고 프레임을 짤 수도 있다. 이런 패키지들은 java.awt.* 이나 javax.swing.* 에 대부분 포함되어있다. 하지만 웹에서 출력을 건드릴 때는 HTML이나 XML에서 작업하는 것이 훨씬 용이한 편이다. 그렇기에 이번 게시글에서는 자바에서 데이터를 파일로 입출력하는 것에 대해 집중하여 알아보려 한다. (java.io.* 패키지를 활용할 예정이다. 여기서 io란 input과 output을 의미한다..

    [JAVA] #9-6 File 클래스

    1. 파일 클래스 자바에서는 File 클래스를 통해서 파일과 디렉터리를 다룰 수 있도록 하고 있다. 그래서 File 인스턴스는 파일 일 수도 있고 디렉터리 일 수도 있다. 이 파일 클래스는 java.io 안에 들어있으며(in, out) 파일명, 파일 크기, 확장명, 파일 타입 등등에 접근할 수 있다. 이제 직접 파일 클래스를 사용해보자!! * 파일 클래스를 사용하려면 java.io.* 를 임포트(import)시킬 필요가 있으며 파일이 없더라도 프로그램이 정상적으로 종료가 되어야하기 때문에 예외처리가 꼭 필요하다(throws, try .. catch 등) 2. 파일 클래스 사용해보기 1) 파일 클래스에 파일 담기 파일 클래스를 만들어서 파일을 담아보자. 파일을 담을 때는 '경로명 + 파일명.확장자명' 을 ..

    [JAVA] #9-5 스레드(Thread)

    1. 스레드 이해하기! 스레드에 대해 이해하기 전에 먼저 짚고 넘어가야 할 개념이 있다. - 바로 프로세스(process). 프로세스란 프로그램이 실행 중이다, 라는 뜻이다. 프로그램이 실행되고 있다면 어떤 상황이 벌어지고 있는 것일까? 그 프로그램이 데이터, 메모리등의 자원을 차지하고 사용하고 있다는 뜻일 것이다. 그리고 스레드란 프로세스 내에서 실제로 작업을 수행하는 주체이자 하나의 단위이다. 작업을 수행하는 주체라는 말은 프로그램 코드를 한 줄씩 실행하는 역할을 한다는 뜻이다. 이렇게 이해해보면 어떨까? 과거 프로그램은 원래 한 가지의 일만 수행할 수 있는 것이 기본적인 프로그래밍의 개념이었을 것이다. 하지만 프로그램이 여러 가지의 일을 동시에 수행시키고 싶다면? 내가 메모장을 동시에 두 개를 켜서..

    [JAVA] #9-4 제네릭(Generic) 이해하기 2 - 제네릭

    1. 제네릭 이해하기 이제 본격적으로 제네릭을 이해해보자. 우린 #9-3에서 알아보았던 컬렉션 프레임워크를 사용하여 다양한 자료형이 한데 뒤섞여있는 것을 보았다. 그 때 모아둔 다양한 요소들 중에서 특정 자료형을 수집하려한다면? 그럴 때 사용하는 것이 제네릭인 것이다. 제네릭에서 사용하는 타입의 종류는 아래와 같다. 이 외에 사용자가 지정해서 만드는 타입까지 여러가지 타입들이 더 있을 수 있지만 주로 사용되는건 아래의 종류들이다. 타입 설명 Type(객체 생성 시 해당 타입으로 변환된다) Element Key Value Number - 와일드 카드 타입 파라미터를 대치하는 것으로 모든 클래스나 인터페이스타입이 올 수 있다. 또는 안에는 참조자료형이 올 수 있다 / String, Integer, Chara..