본문 바로가기

분류 전체보기

File 읽기(read) File을 읽는대엔 두가지 방법이 있다. 1. 문자 하나하나를 읽기 2.문자열로 읽어오기 1. 문자 하나하나를 읽어오는 방법 먼저 읽어올 파일에 접근하기 위해 File 객체를 선언해준다. 그다음 FileReader 객체를 만들어 준후 파라미터로 File객체를 넘겨주어서 File객체에 입력된 경로의 파일에 읽기위한 준비를 해준다. ( 실패할 경우도 있기 때문에 Exception을 해주도록 되어 있다. ) 이제 한 문자씩 읽어오면 되는데 FileReader안에 있는 read() 메소드를 사용하면 된다. 여기서 -1 값이 들어가면 while문을 나오게 되어 있는데 File의 끝을 알려주는 EOF의 값이 -1이기 때문에 ch에 -1이 들어오게 되면 File의 끝을 의미하여 while을 나오게 해준다. 2. 문자.. 더보기
File Class 기본 정리 File Class 자바에서 특정 경로의 파일에 접근하고 싶을때 사용한다. 사용법 File객체를 생성해줄 때 인자값으로 파일의 경로를 넣어주면 된다. 경로 + 파일명을 넣으면 파일에 접근이 가능하다. file의 메소드들을 알아보겠다. 1. list() 메소드 File클래스 안에 있는 메소드로 경로의 모든 파일의 이름을 출력해 준다. String 배열로 반환 된다. 사용법 2. listFiles() 메소드 list 메소드보다 포괄적인 기능으로 파일들과 폴더 그리고 그이외의 파일들에 대한 리스트를 알려 준다. File 배열로 반환된다. 사용법 3. createNewFile() 메소드 말 그대로 File을 생성해주는 메소드이다. 단 위의 두 메소드와는 다르게 경로 + 파일명 까지 넣어준 후에 사용해야 파일명 .. 더보기
진수변환 standard 메소드 지난번에 직접 짜봤던 진수변환 메소드는 원래 기본 으로 제공되는 메소드들이다. 진수변환 메소드들은 Integer Class에 내포되어 있다. 10진수로 바꿀때 Integer.parseInt( 문자열, 몇진수인지 입력 ) 위의 메소드로 2,8,16 진수들을 10진수로 변환할 수 있다. 10진수를 각 진수로 바꿀 때 10 -> 2 Integer.toBinaryString( 10진수 입력 ) 10 ->8 Integer.toOctalString( 10진수 입력 ) 10 -> 16 Integer.toHexString( 10진수 입력 ) 위의 메소드들처럼 기본적으로 제공하는 메소드들이 많지만, standard 메소드가 더 느린 경우가 있기 때문에( 진수변환도 그 중 하나 ) 속도를 중요시 하는 프로그램에선 직접 짜.. 더보기
암호화와 복호화 Main 재밋는 코드라 올렸는데 상세한 내용은 주석에 다 달아놨으니 주석을 확인하면 된다. 더보기
진수 변환 코드 Main Input method 입력값을 각 진수로 변환 ex) 2 -> 8 2 ->10 2-> 16 쉬프트 연산 대신에 Math.pow()메소드로 지수연산을 해줘도 된다. 모든 진수를 변환할때 2진수로 변환하는 작업을 거치기 때문에 몇가지 메소드만 만들면 나머지 메소드 들은 만들어 놓은 메소드를 활용해서 만들어 주면 된다. ex) 16진수를 8진수로 16 -> 2 -> 8 이런식으로 변환된다고 생각하고 코드를 짜면 간단하다. 더보기
2차원배열을 1차원 배열로 변환 Main arr2tToArr1 method (변환 메소드) 2차원배열[i][j] ==> i * j를 해주면 총 할당된 갯수를 구할수 있다. 총 할당된 갯수만큼 1차원 배열을 새로 할당 해준 후 값을 차례대로 넣어주면 된다. 결과 더보기
응용실습( 계산기, 기능을 Method로 나눔 ) Main Input Method (입력 메소드) numCheck Method (숫자 체크 메소드) OperCheck Method(연산자 체크 메소드) calResult Method (연산 메소드) 지난번에 올린 계산기 코드를 기능별로 Method로 나눈 코드. 더보기
Call by Value vs Call by Reference 컴퓨터를 공부하는 사람이라면 한번쯤 들어봤을 Call by Value 와 Call by Reference 말 그대로 "값을 받아온다"와 "참조한다"인데 참조 하는 것은 "주소값을 참조한다"는 의미가 되겠다. 자바는 Call by Value이며 Call by Reference는 아니다라고 생각하는 사람들이 많은데 이는 잘못된 내용이다. 간단한 예를 들어 아래의 코드를 보자 위의 코드는 값을 swap해주는 함수에 넣어 확인하는 코드이다. 함수 호출 전엔 num1=10, num2=20이 나온다. 함수안엔 swap시키는 부분이 있으므로 함수 호출 후엔 스왑이 되어야 한다. 함수 후엔 무슨 값이 나올까? 아래의 결과를 보면 예상과는 다른 swap이 안된 결과를 확인 할 수 있다. 이런 경우를 Call by Val.. 더보기
피보나치 수열 코딩 공부를 하다보면 문제에서 피보나치가 자주 나오는데 위에처럼 보여주는건 간단하게 짜인다. 저 값을 입력한 값만큼 피보나치 수열을 받고 그 값을 활용하는 방법의 문제들도 봐 왔는데 값을 입력 받고(얼만큼의 피보나치수열을 얻을 것인지) 그 값만큼 배열을 동적할당 한 후에 값들을 배열에 저장해 나가면 된다. 더보기
버블정렬(Bubble Sort) 버블 정렬(Bubble Sort) 버블정렬은 한 루프당 1개씩 정렬 시키는 가장 널리 쓰이는 정렬이다. 예를 들어 위의 소스로 설명하자면 i가 0일때 1개의 숫자가 맨 오른쪽에 정렬되며 i이가 1일때 그오른쪽에 또하나의 수가 정렬 되고 i가 n-1일때 마지막 수가 정렬된다. 수행 시간은 로써 삽입정렬과 같다. 버블정렬이 퀵정렬이나 병합정렬보다 성능이 훨씬 안좋은데도 많이 쓰이는 이유는 구현하기가 간단하기 떄문이다. 이전 포스팅에서 보였던 병합정렬만해도 메소드를 따로 만들어서 재귀적으로 호출해야 하는데 버블정렬은 그럴 필요가 없이 간단하게 구현이 가능하다. 더보기