12. IO (IntputOutput) _객체 입출력 (ObjectDao)
2022. 11. 8. 14:13
JAVA
-아래와 같은 Phone 클래스를 입출력하고자 함. -객체를 입출력할때에는 implements Serializable -> 직렬화과정 필수 package com.br.chap04_assist.part02_object.model.vo; import java.io.Serializable; public class Phone implements Serializable{ // 직렬화 //객체 자체를 입출력 하고자 한다면 반드시 직렬화과정 필수 private String name; private int price; //기본생성자, 매개변수 생성자, getter/setter / toString //단축키 alt+Shift+s public Phone() {} //매개변수 생성자 단축키 alt+Shift+s => o p..
12. IO (IntputOutput)_ Stream _ 보조스트림
2022. 11. 8. 14:07
JAVA
* 보조 스트림 == 기반스트림의 부족한 성능을 보다 향상시켜주는 역할 보조스트림 단독 사용 불가(반드시 기반스트림과 함께 사용) * BufferedXXXXXXX: 속도를 향상 시킨다거나 기반 스트림에서 제공하지 않는 메소드들을 제공 1. 프로그램 --> 파일(출력) // FileWriter : 파일과 직접적으로 연결해서 2byte단위로 출력할 수 있는 기반 스트림 // BufferedWriter : 버퍼라는 공간을 제공해주는 보조스트림(보조스트림은 기반스트림과 동일한 이름으로) - 속도향상 //try~ with~ resource 구문 사용 -> finally 구문 쓰지않아도 자동 스트림 반납됨 public void fileSave() { /* try~with~resource 구문을 이용하면 자원반납까지..

12. IO (IntputOutput) _문자기반 Stream
2022. 11. 8. 13:40
JAVA
"문자 기반 스트림" - 문자스트림: 데이터를 2바이트 단위로 전송할 수 있는 넓은 통로 - 기반스트림: 외부매체와 직접적으로 연결되는 통로 * xxxReader : 입력용 스트림 * xxxWriter : 출력용 스트림 1. 프로그램 ---> 파일 (출력 ) //FileWriter(파일로 데이터를 2바이트 단위로 출력할 수 있는 스트림 public void fileSave() { FileWriter fw = null; try { //1. fileWriter 생성(통로 연결) fw = new FileWriter("b_char.txt"); //2. 데이터 출력(write 메소드) // 2byte단위로 데이터 전송 fw.write("와! IO재밌다..ㅎ"); fw.write(' '); fw.write('A')..
12. IO (IntputOutput) _바이트기반Stream
2022. 11. 7. 17:47
JAVA
Stream(스트림) : 입출력 장치에서 데이터를 읽고 쓰기 위해서 자바에서 제공하는 클래스 모든 스트림은 단방향이며 각각의 장치마다 연결할 수 있는 스트림 존재 하나의 스트림으로 입출력을 동시에 수행할 수 없으므로 동시에 수행하려면 2개의 스트림 필요 *스트림의 특징 - 단방향 :출력이면 출력용 스트림/ 입력이면 입력용 스트림 - 선입선출 (FIFO): 먼저들어간 데이터가 먼저 나가게됨 => 시간 지연(delay) 발생될 수 있음 *스트림의 구분 > 통로의 사이즈 (1byte / 2byte) -바이트 스트림: 1byte짜리 데이터만 왔다갔다 할수있는 좁은 통로(입력 InputStream/ 출력 OutputStream) -문자 스트림: 2byte짜리 데이터도 왔다갔다 할 수있는 넓은 통로 (입력 Read..
12. IO (IntputOutput) _ file생성
2022. 11. 7. 17:37
JAVA
IO(입출력) : Input과 Output의 약자, 컴퓨터 내부 또는 외부 장치와 프로그램 간의 데이터를 주고 받는 것 장치와 입출력을 위해서는 하드웨어 장치에 직접 접근이 필요한데 다양한 매체에 존재하는 데이터들을 사용하기 위해 입출력 데이터를 처리할 공통적인 방법으로 스트림 이용 public static void main(String[] args) { // 간단하게 파일 만들기 // java.io.File 클래스 사용 try{ //1.경로지정을 하지 않은 상태로 파일 생성 -> 현재 project폴더에 파일생성 File f1 = new File("test.txt"); //만들고자하는 파일명 지정 f1.createNewFile(); //2. 경로지정한 상태로 파일 생성 File f2 = new File..
11.Exception_ CheckedException
2022. 11. 7. 17:32
JAVA
CheckedException : 반드시 예외처리를 해야만하는 예외들 => 조건문 제시 불가 (예측불가한 곳에서 문제가 발생) => 외부 매개체와 입출력이 일어날 때 발생됨 (IOException) => try~catch구문 / throws 를 이용하여 예외처리 예시 1. 사용자에게 키보드값 ( BufferedReader)를 사용해 입력받았을때 발생하는 IOException처리 BufferedReader 는 Scanner 와 비슷하게 키보드로 값을 입력받을 수 있는 객체 이지만 문자열로만 읽어들여짐. 해결방법 1. try ~ catch문 이용 try ~ catch문 : 지금 즉시 곧바로 예외를 처리하겠다 // try {예외가 발생할 가능성이 있는 코드 작성} // catch(발생될 예외클래스 매개변수) ..
11. Exception_ UnCheckedException
2022. 11. 7. 17:22
JAVA
*에러 종류 -시스템 에러 : 컴퓨터의 오작동으로 발생하는 에러 -> 소스코드로 해결안됨-> 심각한 에러 -컴파일 에러 : 소스코드 문법상의 오류 -> 빨간줄로 오류 알려줌 (개발자의 실수) -> 소스코드 수정으로 해결 -런타임 에러 : 코드 상으로는 문제가 없지만 프로그램 실행 중 발생하는 에러 (사용자의 실수 or 개발자가 예측가능한 경우를 제대로 처리안했을경우) ->소스코드 수정으로 해결가능 -논리 에러 : 문법적으로도 문제없고, 실행했을 때도 굳이 문제는 없지만 프로그램 의도상 맞지 않는 것들 * 시스템 에러를 제외한 컴파일,런타임, 논리 에러와 같은 덜 심각한 것들을 "예외"라고 표현함 == Exception * 이런 "예외"가 "발생"했을 경우에 대해 처리하는 방법을 "예외처리" 라고 함 *예..
배열 실습문제
2022. 11. 6. 19:06
JAVA/JAVA실습문제
1.길이가 10 인 배열을 선언하고 1 부터 10 까지의 값을 반복문을 이용하여 순서대로 배열 인덱스에 넣은 후 그 값을 출력하세요 public void practice1() { int[] arr = new int[10]; for(int i =0;i
조건문, 반복문 실습문제 (if,switch,while,for)
2022. 11. 6. 18:52
JAVA/JAVA실습문제
1. 정수 두개를 입력받고 두 수 사이에 있는 정수들의 합을 구하세요. public void totalCalculator() { Scanner sc = new Scanner(System.in); System.out.print("첫번째 정수 : "); int num1 = sc.nextInt(); System.out.print("두번째 정수 : "); int num2 = sc.nextInt(); int max = Math.max(num1, num2); int min = Math.min(num1, num2); int sum = 0; for(int i = min; i0) { for(int i =1; i
반복문 실습문제 ( for,while)
2022. 11. 6. 18:29
JAVA/JAVA실습문제
1. 사용자로부터 한 개의 값을 입력 받아 1부터 그 숫자까지의 숫자들을 모두 출력하세요. 단, 입력한 수는 1보다 크거나 같아야 합니다. 단, 미만의 숫자가 입력됐다면 “잘못 입력하셨습니다. 다시 입력해주세요.”가 출력되면서 다시 사용자가 값을 입력하도록 하세요 ublic void pracitce2() { Scanner sc = new Scanner(System.in); while(true) { //무한반복 돌리기 System.out.print("1이상의 숫자를 입력하세요: "); int num = sc.nextInt(); if(num>0) { for(int i=1;i0) { for(int i=num;i>=1;i--) { System.out.print(i + " "); } break; }else { S..