Java | spring71 Java class file, 자바 파일 클래스 주요 메소드 파일인지 아닌지 판단하는 메소드 boolean isDirectory() Tests whether the file denoted by this abstract pathname is a directory. boolean isFile() Tests whether the file denoted by this abstract pathname is a normal file. package com.file.exam01; import java.io.File; public class FileTest01 { public static void main(String[] args) { // TODO Auto-generated method stub //File f = new File("c:/my/hello.txt"); File .. 2019. 5. 8. Java Stream, 파일 입출력의 기본 스트림 Stream 순서가 있는 자료의 흐름을 stream이라고 한다. 파일로 데이터를 출력하려면 이 데이터들이 순서를 가지고 내보내 져야 한다. 또, 파일로 부터 데이터를 읽어 오려면 역시 파일의 내용이 순서대로 읽어 와 져야 한다. 이와 같이 순서 있는 자료의 흐름을 stream이라고 한다. 자바는 순서 있는 자료의 흐름을 위하여 stream을 제공한다. 크게 두가지 형태의 stream을 제공한다. 문자단위의 stream 글자 단위로 입출력이 이루어 진다. 이것은 메모장 같은 곳에서 바로 확인 할 수 있다. 문자단위의 입출력을 위해 자바가 제공하는 클래스 Reader : 문자 단위 읽기 위한 최상위 클래스 writer : 쓰기 위한 최상위 클래스 byte 단위의 stream InputStream : .. 2019. 5. 8. Java 파일처리 기본 : 입출력, 스트림 프로그램 실행한 결과를 화면에 출력하는 것은 "휘발성"으로 저장되지 않는다. 만약 실행한 결과를 영구적으로 보관하고자 한다면 "파일"이나 "데이터베이스"에 저장할 수 있다. 또, 프로그램 실행에 필요한 자료를 키보드로 입력 받는 것은 처리 자료가 많다면 번거롭다. 이때, 파일로부터 자료를 읽어 들여 처리 할 수 있다. 자바 입출력 자바는 파일처리를 위하여 java.io 패키지에 관련 클래스들을 제공합니다. 파일로 데이터를 입력, 출력 할 수 있다. 이것을 입출력이라고 한다. 때에 따라 파일이 아니라 네트워크로 원격직에 있는 다른 컴퓨터에게 데이터를 출력하고 입력할 수도 있다. 이와 같이 데이터를 파일이나 네트워크를 통해 입력, 출력 하는 것을 모두 "입출력"이라고 한다. 스트림 stream 자바는 이러한.. 2019. 5. 8. Thread 사이의 통신, 1:1 동작 멀티쓰레드 일반적으로 쓰레드는 2개 이상의 객체가 동시에 어떤 작업을 수행하도록 할 때 사용한다. 그렇기 때문에 지금까지 사용한 멀티 쓰레드 프로그램은 가능하면 2개 이상의 객체가 동시에 어떤 작업을 수행하도록 했다. 그래서 반드시 1:1로 동작하지는 않았다. 하지만 경우에 따라서는 1:1로 동작하는 멀티 쓰레드를 용해야 하는 경우가 있다. 그런 경우에는 Thread 사이의 통신을 하면 된다. 자바의 제일 상위 클래스인 Object의 wait 메소드와 notify 메소드를 이용하면 구현이 가능하다. wait( ) : 객체를 대기 시키기 위한 메소드 notify( ) : 대기중인 객체를 깨우기 위해 사용하는 메소드 1:1 멀티쓰레드 예제 - 생산자는 제품(정수)을 만들고, 소비자는 해당 정수를 사용하는 프로그램 만들.. 2019. 5. 8. Java, 동시 실행 스레드! Multi Thread 프로그래밍 Multi process 동시에 여러 프로그램을 실행 할 수 있다. 우리가 사용하고 있는 윈도우 운영체제는 멀티프로세서 지원 동시에 여러가지 프로그램을 실행 할 수 있다. Multi thread 하나의 프로그램안에서 여러가지 기능이 동시에 실행 될 수 있다 예를 들면 한글프로그램에서 인쇄하기와 문서작성이 동시에 이루어 질 수 있다. 자바에서 멀티스레드 프로그램을 위하여 제공하는 클래스가 Thread. 멀티스레드 프로그래밍을 위하여 Thread 클래스를 확장하여 새로운 클래스를 만들고, run 메소드를 재정의 하여 그 안에 Thread가 해야 할 일을 기술한다. 다른 Thread와 공평하게 동작하고자 하는 문장을 run메소드에 기술한다. 자바는 Multi Thread 프로그램을 위하여 Thread클래스와 .. 2019. 5. 8. Java RuntimeException, 자동 예외객체 생성 RuntimeException 예외가 발생하면 사용자는 반드시 예외처리를 해줘야 한다. 그러나 Exception의 수많은 예외들 중에 RuntimeException은 실행시에 발생하는 예외로서 사용자가 특별히 예외처리를 해주지 않아도 자바가 예외처리를 해준다. 그 상황이 되면 예외객체가 자동으로 생성된다. 따라서 RuntimeException의 후손이 아닌 예외는 반드시 사용자가 예외처리를 해 주어야 한다. 대다수의 입출력, 파일처리 관련 클래스 들은 예외를 가지고 있기 때문에 관련 메소드를 사용하거나 객체를 생성한 경우에 try{ }catch{ }를 사용해서 예외처리를 해줘야 하는 경우가 다수 있다. 만약 개발툴 이클립스, Spring 등을 사용하고 있다면, 예외처리를 하지 않으면 x표시가 나타나고 E.. 2019. 5. 8. JAVA Exception 예외 처리 예외(Exception) 예기치 않은 상황 컴파일 시에 발생하는 문제가 아니라 프로그램 실행 시에 사용자의 부주의 등으로 일어나는 예기치 않은 상황 그런 상황에 대한 처리를 "예외 처리"라 한다. 자바는 대부분의 예외상황에 대한 클래스가 이미 만들어져 있다. 그 상황이 되면 자동으로 예외클래스형의 객체가 생성된다. 예를 들어 아래와 같은 상황에서는 예외가 발생한다. int a = 0; int b = 4; float r = b/a; 위 문장을 만나면 new ArithmeticException() 이 자동 발생. 0으로 나눌수는 없기 때문에. > try ~ catch로 직접 처리 하는 방법 throws 키워드로 예외를 메소드 호출하는 쪽으로 맡기는 방법 해당 메소드를 사용하는 쪽으로 예외를 던지는 것 해당 .. 2019. 5. 8. 자료구조, Stack 스택과 큐 Queue 프로그램 개발할 때 가장 많이 사용하는 자료 구조인 스택과 큐 스택은 상자를 쌓아 올리는 형태의 구조이고, 큐는 일상 생활에서 많이 사용하는 방식의 자료 구조 '선착순' 정보처리기사 필기에도 자주 기출문제로 출제되는 자료구조로 참고로 알고 있으면 좋다. Stack(스택) 스택은 사전적 의미로 '더미' , '쌓아 올림'이라는 의미이다. 자료를 넣는 곳과 꺼내오는 곳이 한 방향에서 이루어진다. 스택은 데이터를 쌓아 올리는 형태로 입력 및 저장하고, 출력하는 경우 맨 위에 데이터를 먼저 꺼내는 형태, 제일 마지막에 저장한 데이터를 제일 먼저 꺼내는 후입선출 형태의 자료 구조. LIFO : Last In First Out LIFO 구조 스택 메소드 ㅇ push 메소드 push는 스택에 자료를 넣는 것 E pus.. 2019. 5. 7. JAVA 제네릭 정의와 필요성 (+ArrayList 타입 오류 이유) 제네릭이란? 어떤 값이 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍 하는 것을 '제네릭(Generic) 프로그래밍' 이라고 한다. 제네릭 프로그램은 참조 자료형이 변환될 때 이에 대한 검증을 컴파일러가 하므로 안정적 여러 참조 자료형이 쓰일 수 있는 곳에 특정한 자료형을 지정하지 않고 클래스나 메서드를 정의한 후 사용하는 시점에 어떤 자료형을 사용할 것인지 지정하는 방식 제네릭의 필요성 자료형 별로 메소드를 만들면 코드의 효율성이 떨어진다. 그래서 Object로 세팅을 하게 되면 변환 시 Object가 되기 때문에 반드시 형변환을 해야 하는 번거로움이 생긴다. 이럴때 사용시점에 자료형을 지정하는 제네릭 방식을 사용한다. 자바의 컬렉션프레임워크에는 어떤 자료형이라도 담을 수 .. 2019. 5. 7. 이전 1 2 3 4 5 6 7 8 다음 반응형