목록전체 글 (226)
Daily coding
package day7; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Scanner; public class Ex01_GradeProgram { public static void main(String[] args) { /* * 함수로 만들기 String student[10][]; ------- 출력예시 -----..
File write File file = new File("d:/tmp/newFile.txt"); // 쓰기 기능이 있는 파일이라면 덮어씀 (읽기 전용 아닌 경우) * FileWriter : 파일에 문자열 입력하는 클래스 1. 한 문자씩 쓰기 FileWriter fw = new FileWriter(file); fw.write("하이하이" + "\n"); // 개행이 필요하면 \n을 덧붙여줘야 함 // 위의 코드는 close를 안하면 파일에 쓰기가 안됨!! // 읽기는 안해도 읽힘 fw.close(); 자바로 쓴 파일은 자바에서 읽었을 때 글자가 깨지지 않는다. 2. 추가로 쓰기 * FileWriter 클래스 변수를 만들고 초기화 할 때, 인스턴스가 2개인 생성자 FileWriter(file, true) ..
File Read - file 의 실질적 목적 : 데이터 읽기와 쓰기 (저장) - 외부에서 텍스트 파일에 기입함 Read File file = new File("d:\\tmp\\newfile.txt"); FileReader fr = new FileReader(file); -> 텍스트 파일을 읽어오는 클래스 // 예외처리 필요함 --> throws / try-catch 방법 1 : 한 문자씩 읽어들인다. int c = fr.read(); while( c!= -1) { // -1은 파일 끝부분임 System.out.println((char)c); c = fr.read(); // 윈도우에서 만든 파일은 MS949 라 UTF8은 깨짐 // 내부에서 작성한 파일은 안깨진다. } 방법 2 : 전체를 한글자씩 읽기 ..
File : 파일 입출력 - logic 부분 : 직접 구현하는 부분 (DAO, DTO ...), 사용자가 직접 코드 짜야함 - 기능 부분 : upload, file... , 외운다기 보다는 이해한 후에 코드 불러와서 사용하는 것이 좋다. => File window 파일 - *.lib : library, 정적 파일 - 메모리에 저장되어 꺼내서 사용, 보안 강함 - *.dll : dynamic link library, 동적파일 - 필요할 때마다 그떄그때 읽음, 가볍지만 해킹에 취약 - *.jar : Java의 라이브러리 파일 - 텍스트 파일 (*.txt) : 모든 파일의 기본 저장매체(데이터 저장) : - File / Database(궁극적으로는 file, file을 프로그래밍화한 것) - 이름 나이 주소 ..
Exception : 가장 넓은 범위의 예외로, 모든 예외를 포함한다. // 가장 많이 사용함, 다양한 예외가 발생하는 코드의 경우에는 // 특정한 예외를 catch문에 사용하여 여러번 작성하면 됨 NullPointerException * String str = null; try { System.out.println(str.length()); } catch (NullPointerException e) { System.out.println("str이 할당되지 않았습니다."); // 출력됨 } ArrayIndexOutOfBoundsException * int arr[] = { 2, 4, 6 }; try { System.out.println(arr[3]); } catch (Arra..
// 함수에 예외 적용하기 // 1. 예외 던지기 try { funcExcp(); } catch (Exception e) { System.out.println("예외 발생"); } // 2. 예외 만들기 try { throw Excp(); // 지금은 무조건 예외가 발생하는 메소드 호출한다. } catch (Exception e) { System.out.println("예외 만들어서 던짐"); } } // 메소드 부분 static void funcExcp() throws ArrayIndexOutOfBoundsException{ int n[] = { 1, 2, 3 }; for (int i = 0; i
Exception : 예외 != 에러 (개발자가 유지 보수하기 위함) - 예외가 발생해도 프로그램 멈추지 않고 동작하지만 문제가 발생한 경우에 막아주기 위한 용도로 사용 - 문제의 발생과 뒤처리가 목적 예시 (가장 대표적인 예외들) 1. 숫자입력에 1 2 3 (O) , 'A' --> ? (예외 발생) => NumberFormatException : 숫자 입력에 문자가 들어왔을 때 / 반대의 경우 등 2. 배열에 할당된 범위를 벗어나서 데이터를 저장하려고 할 때 int arr[] = new int[3]; arr[3] = 1; // 예외발생 => ArrayIndexOutOfBoundsException 3. 자바에서 API를 import하지 않았을 때 Scanner sc = new Scanner(System...
Overload : 함수(메소드)명은 같고 인자, 인수(매개변수)의 자료형이지만 인수의 개수가 다른 함수를 의미함. (서로 다른 함수임) 예시 : image draw function 중 RGB, RGBA(투명도) 의 인자의 개수가 다르기 때문에 오버로딩으로 구현 구현 : imageDraw(int x, int y){ } imageDraw(int x, int y,int a) { } ** Override : 상속, 다형성과 관련된 개념 주의사항 1. 함수의 자료형을 바꾸면 오버로딩 구분이 안됨. 2. 매개변수로 가변인수는 컴파일 에러가 날 수 있다.
가변인수 */ // 파라미터의 갯수가 정확하지 않을 때, 가변인수는 매개변수를 배열로 받아서 사용함 // 아래의 코드는 메소드 호출한 것 allocParameter(1,2,3,4,5,6,7,8,9,10); alloc_Parameter("Hello world", 1,2,3,4,5,6,7,8,9,10); // 합계 : 55 // 합계 : 55 Hello world // 가변인수는 많이 사용하지 않으나 (배열과 역할이 같기 때문에) // 들어오는 매개변수의 개수가 정해져있지 않을 때 사용함 } // 가변인수 메소드 static void allocParameter(int...ab) { int sum = 0; for (int i = 0; i
package day6; import java.util.Arrays; import java.util.Random; import java.util.Scanner; public class Ex08_BaseballFunction { public static void main(String[] args) { // 1. 초기화 // 2. random /////////////////////// loop // 3. user input // 4. finding (판정) // 4. Message /////////////////////// loop // 5. result (출력) // Main int[] rNum = new int[3];// 난수 세개 담을 배열 생성 int[] uNum = new int[3];// 유저 입..