Java 33

Java_File과 Files 클래스

File 클래스와 Files 클래스는 자바에서 파일 및 디렉토리 관리를 위해 사용하는 주요 클래스  File 클래스: 파일이나 디렉토리에 대한 경로 정보를 표현하고 관리하는 데 사용 파일이 존재하는지, 파일의이름이나 크기, 디렉토리인지 여부 등을 확인하는 데 주로 사용실제 파일 내용에 접근하거나 수정하는 기능은 제공 x File 클래스로부터 File 객체를 생성하는 방법File file = new File ("경로"); 경로 구분자윈도우 : \\ , / 사용mac , 리눅스 : / 사용 윈도우 File 객체 생성File file = new File("C:/Temp/file.txt");File file = new File("C:\\Temp\\file.txt"); 파일 객체를 생성했다고 해서 파일, 디렉토리..

Java 2024.10.22

Java_객체 스트림

객체 스트림 : 자바는 메모리에 생성된 객체를 파일 또는 네트워크로 출력할 수 있다 객체를 출력하려면 필드값을 일렬로 늘어선 바이트로 변경해야하는데 이것을 직렬화 라고 한다반대로 직렬화된 바이트를 객체의 필드값으로 복원하는 것을 역직렬화 라고 한다  ObjectInputStream 과 ObjectOutputStream 은 객체를 입출력 할 수 있는 보조스트림이다 ObjectOutputStream은 바이트 출력 스트림과 연결되어 객체를 직렬화 하고 ObjectInputStream 은 바이트 입력 스트림과 연결되어 객체로 복원하는 역직렬화를 한다  바이트 -> InputStream -> ObjectInputStream(역직렬화) -> 프로그램(객체) - > ObjectOutputStream(직렬화) -> O..

Java 2024.10.22

Java_프린트 스트림

프린트 스트림 : PrintStream과 PrintWriter는 프린터와 유사하게 출력하는 print(), println(), printf() 메소드를 가지고 있는 보조 스트림이다  PrintStream은 바이트 출력 스트림과 연결되고 PrintWriter는 문자 출력 스트림과 연결된다 PrintStream ps = new PrintStream (바이트 출력 스트림);PrintStream pw = new PrintWriter (문자 출력 스트림);   PrintStream과 PrintWriter 메소드설명print(boolean b)boolean 값을 출력합니다.print(char c)char 값을 출력합니다.print(int i)int 값을 출력합니다.print(long l)long 값을 출력합니다.p..

Java 2024.10.22

Java_기본 타입 스트림

기본 타입 스트림 : 바이트 스트림에 DataInputStream, DataOutputStream 보조스트림을 연결하면 기본 타입인 boolean, char, short, int, long, float,  double 같을 입출력 할 수 있다 > 숫자나 논리값 같은 데이터를  쉽게 파일에 저장하거나 읽어오는 도구  - DataOutputStream (파일에 쓰기)DataOutputStream 은 이 숫자들을 자동으로 바이트로 변환해서 파일에 써준다 FileDataOutputStream fileStream = new FileOutputStream("data.dat");DataOutputStream dataOutputStream = new DataOutputStream (fileStream);dataOutp..

Java 2024.10.22

Java_보조스트림_성능 향상 스트림

성능 향상 스트림: 자바에서 데이트 입출력의 속도와 효율을 높이기 위해 사용하는 보조스트림출력스트림의 경우 직접 하드디스트에서데이터를 보내지 않고 메모리 버퍼에 데이터를 보냄으로써 출력 속도를 향상시킬 수 있다입력 스트림에서도 버퍼를 사용하면 읽기 성능이 좋아진다 대용량파일을 읽거나 쓸 때 , 네트워크를 통한 데이터 송수신이 필요한 경우 줄 단위로 데이터를 처리하거나 한번에 대량의 데이터를 다루고 싶을때 사용 바이트스트림 : BufferedInputStream bis = new BufferedOutputStream (바이트 입력 스트림 );BufferdOutputStream bos = new BufferedOutputStream (바이트 출력 스트림);FileInputStream fileStream = ..

Java 2024.10.22

Java_보조스트림, 문자변환 스트림

보조스트림 (Filter Stream) : 자바의 입출력 스트림에서 기존 스트림에 추가적인 기능을 제공하는 스트림이다 데이터를 읽거나 쓸 때 , 버퍼링, 형식변환, 데이터 필터링 등 기능을 추가하여 효율적이고 편리한 입출력 작업을한다다독으로 사용이 불가하고, 기본 스트림에연결하여 사용한다  * 입력스트림->보조스트림-> 프로그램 -> 보조스트림-> 출력스트림 입출력 스트림에 보조스트림을 연결하려면 보조 스트림 생설할 때 생성자 매개값으로 입출력 스트림 제공보조스트림 변수 = new 보조스트림(입출력스트림); 바이트스트림인 FileInputStream에 InputStreamReader 보조스트림 연결하는 코드InputStream is = new FileInputstream("...");InputStream..

Java 2024.10.21

Java_데이터 입출력(Input.Output Stream)_입출력스트림

데이터 입출력(Input.Output Stream): 프로그램과 외부자원(파일, 네트워크, 메모리) 사이에서 데이터를 주고받는 통로 스트림을 사용하면 데디터를 연속적인 흐름으로 다룰 수 있고 , 자바는 다양한 유형의 스트림을 제공하여 텍스트, 바이너리 데이터, 객체 등을 읽고 쓸 수 있게 해준다 * 스트림(Stream) : 데이터를 한 방향으로 흐르게 하는 통로이다 데이터를 읽어들이는 입력 스트림 , 데이터를 내보내는 출력 스트림으로 나눌 수 있다  * 입력 스트리림(Input Stream) :프로그램 기준으로 데이터가 들어오면 입력스트림* 출력 스트림(Output Stram) :프로그램 기준으로 데이터가 나가면 출력 스트림  키보드 , 파일, 프로그램 -> 입력스트림 -> (도착지) 프로그램 (출발지)..

Java 2024.10.21

Java_컬렉션 자료구조_검색기능을 강화시킨 컬렉션_수정할 수 없는 컬렉션

수정할 수 없는 (unmodifiable) 컬렉션 : 요소를 추가, 수정, 삭제할 수 없는 컬렉션 말한다 즉, 데이터의 무결성을 보장할 수 있다 1. List, Set, Map 인터페이스의 정적 메소드인 of()로 생성List immutableList = List.of(E... elements);Set immutableSet = Set.of(E... elements);Map immutableMap = Map.of(K k1, V v1, K k2, V v2, ...);  2. List,Set,Map 인터페이스의 정적 메소드인 copyOf() 이용해 기존 컬렉션을 복사하여 수정List immutableList = List.copyof(Collection coll);Set immutableSet = Set.co..

Java 2024.10.18

Java_컬렉션 자료구조_검색기능을 강화시킨 컬렉션_동기화된 컬렉션

동기화된 컬렉션(Synchronized Collections) : Java 에서 멀티스레드 확경에서 안전하게 컬렉션을 사용할 수 있도록 만든 컬렉션 여러스레드가 동시접근할 때 데이터의 일관성을 유지하고 데이터가 손상되는 것을 방지한다동기화된 컬렉션을 사용하면 한 스레드가 컬렉션을 사용하는 동안 다른 스레드가 접근하지 못하도록 잠금(Lock) 통해 보호  - ArrayList, HashSet, HashMap은 동기화된 스레드로 구성되어있지 않아서 멀티 스레드 환경에서 안전하지 않다이럴때를 대비 컬렉션 프레임워크는비동기화된 메소드를 동기화된 메소드로 래핑하는 Collections의 synchronizedXXX() 제공한다아래의 메소드들은 매개값으로 비동기화된 컬렉션을 대입하면 동기화된 컬렉션을 리턴한다리턴타..

Java 2024.10.18

Java_컬렉션 자료구조_검색기능을 강화시킨 컬렉션_LIFO와 FIFO 컬렉션

후입선출 LIFO(Last In First Out) 은 마지막에 들어온 데이터가 가장 먼저 나가는 방식 선입선출 FIFO(First In First Out) 은 먼저 들어온 데이터가 가장 먼저 나가는 방식 LIFO vs FIFO 비교구분LIFOFIFO정의마지막에 들어온 데이터가 먼저 나갑니다.먼저 들어온 데이터가 먼저 나갑니다.자료구조스택(Stack)큐(Queue)예시함수 호출 스택, Undo 기능대기열 시스템, 네트워크 패킷 처리일상 예시책을 쌓아 올린 후 맨 위에서부터 꺼내는 방식줄을 서서 차례대로 물건을 구매하는 방식동작 방식Push : 데이터를 스택의 맨 위에 추가한다Pop :  스택의 맨 위에 있는 데이터를 제거학 반환Enqueue : 데이터를 큐의 뒤에 추가한다Dequeue : 큐의 앞에 있는..

Java 2024.10.18