JAVA/Java 기초 33

[JAVA] 파일 Copy (바이트기반 입/출력)

기반 스트림인 파일 입력,출력 스트림을 사용import java.io.FileInputStream;import java.io.FileOutputStream;public class FileCopy { public static void main(String[] args) { // 스트림은 기본적으로 단방향이다. (한방향으로 데이터를 흘러보낼 수 있다는 뜻) // 입력 스트림, 출력 스트림 두개가 필요하다 // 파일 경로 (복사할 대상) String sourceFilePath = "C:\\Users\\KDP\\Downloads\\a.zip"; // 목적지 파일 String destinationFilePath = "copy1.zip"; // 소요 시간 확인 long startTime = Syste..

JAVA/Java 기초 2024.05.17

[JAVA] 파일 출력 스트림(바이트 기반)

import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class MyFileOutputStream { public static void main(String[] args) { long start = System.nanoTime(); // 데이터가 존재 String data = "Hello, Java FileOutputStream \n 안녕반가워"; // 1. 파일에다가 데이터를 저장 하고 싶다면 (바이트 기반) // 자바 8버전 부터 제공 // try-catch-resource -> (자동으로 자원 닫아 준다) try (FileOutputStream fos =..

JAVA/Java 기초 2024.05.17

[JAVA] 파일 입력 스트림(바이트 기반)

기반 스트림 (Base Stream)이란 뭘까?기반 스트림은 데이터 소스와 직접 연결되는 스트림으로, 실제 데이터 읽기나 쓰기 작업을 수행한다. 이 스트림들은 데이터의 실제 입력 소스(파일, 메모리, 네트워크 연결 등)에 직접 연결되어 데이터를 바이트 단위로 읽거나 쓰는 기본적인 기능을 제공한다.바이트 기반 스트림: FileInputStream, FileOutputStream, SocketInputStream, SocketOutputStream 등이 있으며, 이들은 바이트 데이터를 처리한다.문자 기반 스트림: FileReader, FileWriter 등이 있으며, 이들은 문자 데이터를 처리한다. 보조 스트림 (Filter Stream)이란?보조 스트림은 기반 스트림 또는 다른 보조 스트림에 연결되어 사용..

JAVA/Java 기초 2024.05.16

[JAVA] 표준 입출력

자바에서 표준 입출력(Standard Input/Output)은 프로그램과 사용자 간의 기본적인 데이터 교환 방법을 제공한다.표준 입출력의 핵심 요소System.in**System.in**은 자바 프로그램의 표준 입력 스트림이다. 기본적으로 이 스트림은 키보드 입력을 받는다. 이는 InputStream 객체로, 바이트 기반의 낮은 수준의 입력 기능을 제공한다. 일반적으로, 사용자로부터 텍스트를 읽기 위해 Scanner 클래스나 **BufferedReader**와 같은 더 높은 수준의 래퍼(wrapper)를 사용하여 쉽게 데이터를 처리할 수 있다.System.out**System.out**은 자바 프로그램의 표준 출력 스트림으로, 텍스트 데이터를 콘솔에 출력한다. 이 스트림은 PrintStream 객체로,..

JAVA/Java 기초 2024.05.16

[JAVA] Map 인터페이스

Map은 키(key)와 값(value)을 연관시키는 자료구조이다. 이는 사전과 유사한 구조로, 각 키는 고유한 값을 가진다.Java에서 Map은 인터페이스로 정의되어 있으며, 이를 구현한 여러 가지 클래스가 있다. Map 주요 특징키-값 저장: Map은 키(key)와 값(value)의 쌍으로 데이터를 저장한다. 각 키는 고유해야 하며, 하나의 값에만 매핑된다.중복 키 불가: Map은 각 키가 고유해야 한다. 따라서 동일한 키를 두 번 이상 추가할 수 없다. 키의 유일성은 Map 내에서 보장된다.순서 보장하지 않음: Map은 키-값 쌍을 저장하는데 순서를 유지하지 않는다. 따라서 Map에 저장된 순서와 데이터를 순회할 때의 순서는 일치하지 않을 수 있다. Map 주요 기능 및 메서드키-값 저장: Map은 ..

JAVA/Java 기초 2024.05.16

[JAVA] 프레임워크(collection framework)

자바에서 컬렉션 프레임워크(collection framework)란다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미.즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것입니다. 이러한 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현. ● 프로그램 구현에 필요한 자료구조(Data Structure)를 구현해 놓은 JDK 라이브러리 이다.● java.util 패키지에 구현되어 있음● 개발에 소요되는 시간을 절약하면서 최적화 된 알고리즘을 사용할 수 있음 (만들어져 있는 걸 활용)● 여러 구현 클래스와 인터페이스의 활용에 대한 이해가 필요함   List 인터페이스 - 1자바에서 객체를 순서대로 ..

JAVA/Java 기초 2024.05.16

[JAVA] 자바 I/O 개론

자바 I/O (입출력)데이터를 읽고 쓰는 기능파일, 네트워크, 다른 프로그램 등 다양한 소스와 대상으로부터 데이터를 주고 받는데 사용됨자바의 I/O 시스템은 크게 네 가지 주요 구성 요소로 나룰 수 있다(바이트 기반 스트림, 문자 기반 스트림, 버퍼링 스트림 그리고 고수준의 스트림으로 분류할 수 있음) 💡  Stream 이라는 단어를 살펴보자스트림(Stream)은 데이터를 순차적으로 처리하는 일련의 연속된 데이터 요소들이다. 자바에서 스트림은 데이터의 흐름을 읽고 쓰는 데 사용되는 추상적인 개념으로, 입출력 작업을 수행할 때 데이터를 한 곳에서 다른 곳으로 이동시키는 매개체 역할을 한다.주의!자바에서 '스트림'이라는 용어는 두 가지 맥락에서 사용된다. 하나는 I/O에 관련된 데이터 흐름을 처리하는 스트..

JAVA/Java 기초 2024.05.16

[JAVA] LinkedList

1. LinkedList 에 특징을 알아 보자2. LinkedList 구현해 보기자기 참조 관계-  자기 참조는 객체가 자신과 같은 타입의 다른 객체를 가리키는 경우를 말한다.- 용도 -> 연결 리스트, 트리 구조에 많이 활용 LinkedList 특징동일한 데이터 타입을 순서에 따라 관리하는 자료 구조자료를 저장하는 노드에는 자료와 다음 요소를 가리키는 링크(포인터)가 있음자료가 추가 될때 노드 만큼의 메모리를 할당 받고 이전 노드의 링크로 연결함 (정해진 크기가 없음)jdk 클래스 : LinkedList52라는 데이터를 찾으려면 Head에서부터 차례차례로 찾는다 -> next : 하나의 요소를 저장하는 기능 설계 package structure.ch04;public class MyLinkedList {..

JAVA/Java 기초 2024.05.08

[JAVA] 큐(Queue)

큐 Queue란?- 데이터를 저장하는 선형 자료구조 - 차례를 기다리는 줄이라는 의미를 가지고 있는 단어처럼 먼저 들어온 자료부터 순서대로 처리하는 방식을 말한다.- 한 쪽 끝에서는 자료의 삽입 연산만 가능하고 반대쪽 끝에서는 삭제만 가능한 구조(FIFO : First In First Out)의 특징을 가진다. Queue의 특징 맨 앞(front) 에서 자료를 꺼내거나 삭제하고, 맨 뒤(rear)에서 자료를 추가 함Fist In First Out (선입선출) 구조일상 생활에서 일렬로 줄 서 있는 모양순차적으로 입력된 자료를 순서대로 처리하는데 많이 사용 되는 자료구조콜센터에 들어온 문의 전화, 메세지 큐 등에 활용됨jdk 클래스 : ArrayList capacity   은 용량을 정의할 때 많이 쓰임 실..

JAVA/Java 기초 2024.05.07

[JAVA]이미지 올리기

[이미지 파일 생성] ▶▶▶▶New > File 생성  [코드]화면 실행 실행 결과_____  이미지 두개를 띄우려면? ▶객체를 하나 더 만들어 주면 됨!     static class MyImagePanel extends JPanel{          private Image image1;          private Image image2;      public MyImagePanel() {              image1 = new ImageIcon("image1.png").getImage();              image2 = new ImageIcon("image2.png").getImage();     }   @Override     public void paint(Graphics g..

JAVA/Java 기초 2024.04.29