본문 바로가기

분류 전체보기173

[Java] Stream - 텍스트데이터 파일 스트림 [FileReader] - 텍스트파일의 텍스트(char형)읽기(데이터출력 / 문자스트림) [메소드] - read() :파일에 있는 문자 데이터를 한 자씩 읽어서 반환하는 메소드, 반환타입은 char가 아니라 int인데 char의 표현범위를 벗어난 다른정보도 리턴해서더이상 리턴 할 것이 없을 때에는 -1을 리턴하기 때문에 조건문에 명시해두면 무한반복을 멈출 수 있게할 것이다. - read(char[] arr) : 위의 메소드와는 다르게 스트림 데이터를 바로 반환하는 것이 아니라 파라미터로 받은 문자 배열에 저장함. 앞의 메소드와 똑같이 문자를 다읽었을 때에는 -1을 반환한다. 이 메소드를 사용하기위해서는 문자 배열을 미리 만들어둬야함 앞서 말했다시피 한 자 한 자씩 읽는 것은 매우 효율적이지 못한 것이다... 2017. 1. 24.
[Java] 자바, 데이터 입출력 방식 Stream [데이터 입출력 방식 Stream]자바 프로그램에서 입력되고 출력되는 모든 데이터는 스트림 형태(1byte씩)로 주고받는다.스트림 형태란 데이터가 한 자씩 일렬로 흘러가는 형태, 키보드로 입력받은 데이터도 스트림으로 받고 모니터로 출력하는 데이터도 스트림으로 받는다.오늘 포스팅할 것은 큰 단위의 데이터를 스트림하는 형태에 대해 배워볼 것인데, 큰 단위의 데이터스트림은 보통 파일에 기록해두고 파일 내용을 불러온다.원래는 DB에 저장해두는 것이 맞지만 구조화된 데이터 파일(엑셀)을 쓰면 비슷한 효과라고 할까나....? 아무튼 자바에서는 스트림을 표준클래스(java.io)로 지원을 하는데, 파일의 흐름 상태에 따라 구분하고, 데이터의 형태에 따라 클래스를 최종 구분한다.파일의 흐름 : 입/출력, 출력할 때에는.. 2017. 1. 24.
[자바스크립트] 들어가기전 DOM 개념잡기 [자바스크립트를 들어가기 전에 필요한 개념 - DOM 개념] html이나, xml을 뜻하는 웹문서 혹은 문서는 같은 부분적 요소나 내용이 관련된 것 끼리 묶여서 존재하는 구조화된 문서다. DOM은 Document Object Model의 약자로 html, xml 문서를 제어하기 위한 api이고, 문서를 구성하는 엘리먼트들을 객체화하여 제어할 수 있도록 함 문서를 구성하는 엘리먼트들을 객체화할 때도 구조적으로 객체화를 함(이것을 DOM 트리라고 하고 트리를 구성하는 요소들을 node라고 한다.) node에는 문서를 구성하는 엘리먼트(태그), 엘리먼트의 속성(예를 들어 a의 href 속성), 태그 내부에 있는 텍스트를 노드라한다. 쉽게 말해 엘리먼트, 텍스트 개념을 노드로 만든 것 html 문서의 요소에 접.. 2017. 1. 23.
[Java] java.lang 패키지 : Math, Random [Math 클래스] 수학에서 많이 사용되는 여러가지 계산식을 메소드로 제공하고 있는 클래스다. 모두 static 메소드이기때문에 객체를 생성하지않아도 호출가능하다. int / double / float형 연산이 가능한 프리미티브 타입 변수를 파라미터로 받아 연산한다. [메소드] => pow : a의 b승을 반환하는 메소드 => sqrt : a의 제곱근을 반환하는 메소드 => cbrt : a의 세제곱근을 반환하는 메소드 => abs : a의 절대값을 반환하는 메소드 => max/min : a,b 중 큰 수 작은 수를 반환하는 메소드 => random : 난수를 반환하는 메소드 그외 삼각함수, 로그 관련 메소드가 있음 System.out.println("2의 3승 : " + Math.pow(2, 3)); S.. 2017. 1. 22.
[Java] java.lang 패키지 : Calendar, DateFormat, TimeZone 날짜와 시간은 프로그램에 있어서 아주 자주 사용되는 데이터이다.가령 타임라인이 있다고 하자. 타임라인에 쓰여진 글들은 말 그대로 타임순서대로 나열되어 있는 것이다.이때 필요한 것이 시간/날짜를 알 수 있는 클래스다.java.lang > java.util 패키지에서는 이러한 기능을 하는 표준클래스들이 있다. [Calendar 클래스]캘린더 클래스는 인터페이스다. 인터페이스인 이유는 나라마다 날짜를 계산하는 방법(우리나라 : 양력, 음력)이 문화와 지역에 따라 다르기 때문이다.캘린더 클래스에서는 기본적으로 날짜를 계산하는 메소드만 있고 나머지는 인터페이스를 구현하는 클래스에서 따로 구현을 해야한다.캘린더 클래스를 구현하여 양력을 계산하는 GregorianCalendar 클래스가 있다.api 참고 : http.. 2017. 1. 21.
[Java] java.lang 패키지 : StringTokenizer [StringTokenizer]문자열로부터 토큰을 추출하는 기능을 하는 클래스, 여기서 말하는 토큰이란 문자열을 구성하는 단위를 말한다."토끼 강아지 고양이" 라는 문자열이 있다면 "토끼" "강아지" "고양이" 가 토큰이다.보통 데이터를 가져와서 어느 기준을 따라 자르고 저장할 때 중간과정에서 많이 쓸 것으로 보인다. [메소드] => hasMoreToken : 문자열의 토큰을 반환할 때 다음 토큰이 있는지 없는지 검사한 후 boolean 값을 반환하는 메소드, 반복작업할 때 씀 => nextToken : 규칙(델리미터)에 따라서 잘라진 토큰을 하나씩 반환하는 메소드 String str8 = "제목 : 진브로의 하루, 페이지수 : 100, 호수 : 1"; StringTokenizer stok = new S.. 2017. 1. 20.
[Java] java.lang 패키지 : StringBuilder, StringBuffer [StringBuilder와 StringBuffer]문자열에 대한 변경처리를 하기위한 클래스다.버퍼(문자열을 수정하기 위한 임시저장공간)에 기존 문자열을 저장해두고 수정하는 방식이다.버퍼의 크기는 최초 16이며, 생성자의 지정에 따라 크기를 지정할 수 있다. (버퍼 사이즈는 1글자 당 버퍼 크기 1)위의 클래스들로 작업할 때 최초 버퍼 크기가 맞지 않아 늘리는 작업이 필요한데, 이 작업은 자동으로 된다.버퍼의 크기는 실제 더 필요한 사이즈보다 2배정도 더 생성하는데, 불필요하게 크게 메모리에 할당되어 낭비될 수 있으므로 버퍼크기는 잘 예상하는 것이 좋다.두 클래스의 생성자, 메소드 형태, 기능이 거의 동일하다. [두 클래스의 차이점]멀티쓰레드 환경이냐 싱글쓰레드 환경이냐이다.다시말해 동시에 처리를 하는 .. 2017. 1. 20.
[Java] java.lang 패키지 : String [java.lang 패키지 클래스] : 자바의 기본 클래스 및 인터페이스 모음 패키지, 자동 import됨 [문자열 관련 클래스(String, StringBuffer, StringBuilder, StringTokenizer)] 1) String : 문자열을 데이터 타입(객체)로 선언하는 클래스이며, concat, replace 등 문자열을 조작하는 메소드를 멤버로 가지고 있다. => 문자열을 생성하는 방법은 객체 생성, 리터럴 2가지가 있음 => 리터럴로 생성하면 값이 같을 경우 같은 참조값을 갖기 때문에 == 으로 참조값을 비교했을 때 true를 반환함 [메소드] => concat : 기존 문자열에 다른 문자열을 붙일 때 사용하는 메소드 => replace : 문자열 중 일부를 변경할 때 사용하는 메소.. 2017. 1. 20.
[Java] 접근제어자 [접근제어자]접근제어자는 클래스 내부 멤버변수, 메소드에 대한 접근을 제어하기위한 명령어이며, 세가지로 나뉜다.1) public : 어디에서나 접근 가능함(인터페이스에서는 상수 - 변수 없이 상수로 선언됨, 메소드 모두 public으로 고정되어있음) 2) protected : 같은 패키지 내에서만 클래스 내부구성요소(변수, 메소드)는 사용할 수 있고 외부패키지에서는 사용안됨3) private : 해당 클래스 내부에서만 사용가능함(객체를 생성하더라도 멤버변수/메소드를 호출할 수 없음)생성자도 private을 설정할 수 있다. 왜 사용하냐고 하겠지만 생성자에서 다른 생성자를 호출해서 하나의 생성자로 모이게끔 코드를 구성할 때 최종 생성자만 private로 설정해놓는 것이다.(객체 생성시 사용자가 아닌 관리자.. 2017. 1. 20.
[Java] 패키지 클래스와 인터페이스 파일이 많아지면 그만큼 관리하기가 어렵고 번거롭기도하고, 중복되지 않게 이름붙이는 것도 어렵다. 이를 위해 각각의 기능 혹은 어떤 기준에 따라 패키지의 개념을 통해 나눠 클래스, 인터페이스 파일을 관리할 수 있다. 다시 설명하자면 하나의 프로젝트가 있고 프로젝트를 완성하기위해 각각의 기능을 구현해야할 것이다. 각각의 기능을 담당하는 클래스, 인터페이스 파일을 프로젝트 내에 있는 디폴트 패키지 폴더에 한 곳에 모두 모아 둘 것이 아니라 각각의 패키지를 생성한 뒤 거기에 맞게 클래스, 인터페이스 파일을 옮겨서 관리를 한다. 프로젝트 전체 폴더 내에 기능에 맞춰 새로운 폴더를 만들고 사용하는 것이다. 클래스 혹은 인터페이스 파일의 이름이 같다하더라도 패키지가 다르기때문에 각각 다르게 인식한.. 2017. 1. 20.