반응형

JAVA 374

자바 PipedReader

PipedReader 클래스는 Java I/O 패키지에서 파이프 스트림을 이용한 스레드 간 통신을 지원하는 클래스 중 하나입니다. 파이프 스트림은 한 스레드에서 출력한 데이터를 다른 스레드에서 입력 받을 수 있게 해주는 특별한 형태의 스트림입니다. PipedReader는 주로 한 스레드에서 다른 스레드로 데이터를 전송할 때 사용됩니다. 여러 스레드 간의 통신이 필요한 상황에서 사용됩니다. PipedReader는 PipeWriter와 함께 사용되어 데이터를 파이프를 통해 전송할 수 있게 해줍니다. PipedReader의 중요한 생성자 1. PipedReader() 생성자 기본 버퍼 크기로 PipedReader 객체를 생성합니다. 2. PipedReader(PipedWriter src) 생성자 PipedWr..

JAVA/포스팅 2023.11.26

자바 FileWriter

FileWriter 클래스는 파일에 문자를 쓰기 위한 Writer의 하위 클래스입니다. 파일에 문자를 기록할 때 사용됩니다. FileWriter는 파일에 문자 데이터를 쓰는 기능을 제공합니다. FileWriter 클래스의 생성자는 파일의 경로나 File 객체를 받아들일 수 있습니다. 주요 생성자는 다음과 같습니다. 1. FileWriter(String fileName) 생성자 주어진 파일 이름에 해당하는 파일에 쓰기 위한 FileWriter 객체를 생성합니다. 이미 파일이 존재한다면 내용을 덮어씁니다. 2. FileWriter(File file) 생성자 주어진 File 객체에 해당하는 파일에 쓰기 위한 FileWriter 객체를 생성합니다. 이미 파일이 존재한다면 내용을 덮어씁니다. 3. FileWrit..

JAVA/포스팅 2023.11.26

자바 FileReader

FileReader 클래스는 파일에서 문자를 읽기 위한 Reader의 하위 클래스입니다. 파일로부터 문자를 읽을 때 사용됩니다. FileReader는 파일의 문자 데이터를 읽어오는 기능을 제공합니다. FileReader 클래스의 생성자는 파일의 경로나 File 객체를 받아들일 수 있습니다. 주요 생성자는 다음과 같습니다. 1. FileReader(String fileName) 생성자 주어진 파일 이름에 해당하는 파일을 읽기 위한 FileReader 객체를 생성합니다. 2. FileReader(File file) 생성자 주어진 File 객체에 해당하는 파일을 읽기 위한 FileReader 객체를 생성합니다. FileReader의 주요 메서드는 read() 메서드인데, 이 메서드는 파일에서 한 문자씩 읽어옵..

JAVA/포스팅 2023.11.26

자바 Writer

Writer 클래스는 문자 기반 스트림을 사용하여 데이터를 쓰기 위한 추상 클래스입니다. Writer 클래스의 하위 클래스는 다양한 목적지로 문자를 쓸 수 있습니다. 예를 들어, 파일에 문자를 쓰기 위해서는 FileWriter를 사용할 수 있습니다. Writer 클래스의 주요 메서드들은 다음과 같습니다. 1. write(int c) 메서드 void write(int c) throws IOException: 하나의 문자를 출력합니다. 2. write(char[] cbuf) 메서드 void write(char[] cbuf) throws IOException: 문자 배열의 모든 내용을 출력합니다. 3. write(char[] cbuf, int off, int len) 메서드 void write(char[] c..

JAVA/포스팅 2023.11.26

자바 Reader

Reader 클래스는 문자 기반 입력 스트림을 읽기 위한 추상 클래스입니다. Reader 클래스의 서브 클래스들은 다양한 소스에서 문자를 읽을 수 있습니다. 이 클래스들은 주로 텍스트 파일, 문자열, 네트워크 연결 등에서 문자를 읽기 위해 사용됩니다. Reader 클래스는 java.io 패키지에 속하며, InputStreamReader과 함께 사용될 때 바이트 기반 스트림을 문자 기반 스트림으로 변환하는 역할을 합니다. 이 클래스의 메서드 중 일부는 다음과 같습니다. 1. read() 메서드 int read() throws IOException: 스트림에서 다음에 있는 문자를 읽습니다. 파일의 끝에 도달하면 -1을 반환합니다. 2. read(char[] cbuf) 메서드 int read(char[] cb..

JAVA/포스팅 2023.11.26

자바 PrintStream

PrintStream 클래스는 출력 스트림을 텍스트로 쉽게 출력하는 데 사용되는 클래스입니다. 주로 콘솔에 텍스트를 출력하는 데에 사용되며, System.out의 출력 스트림이 PrintStream의 인스턴스입니다. PrintStream 클래스는 OutputStream의 서브 클래스이며, 텍스트 형식의 데이터를 출력하는 데 특화되어 있습니다. 기본적으로 텍스트 데이터를 출력할 때 자동으로 문자 인코딩이 처리되어, 문자열, 숫자, 객체 등을 간편하게 출력할 수 있습니다. print 메서드들 - print(boolean b): boolean 값을 출력합니다. - print(char c): 문자를 출력합니다. - print(int i): 정수를 출력합니다. - print(long l): long 타입의 정수를..

JAVA/포스팅 2023.11.26

자바 SequenceInputStream

SequenceInputStream 클래스는 두 개의 입력 스트림을 연속적으로 연결하여 하나의 입력 스트림으로 만들어주는 클래스입니다. 이 클래스는 여러 개의 입력 스트림을 하나로 연결하여 연속적으로 데이터를 읽을 수 있도록 합니다. SequenceInputStream 클래스는 주로 여러 개의 입력 소스를 하나의 스트림으로 묶어서 데이터를 읽을 때 사용됩니다. 예를 들어, 두 개의 파일을 읽어야 할 때 이 두 파일을 하나의 SequenceInputStream으로 묶어서 사용할 수 있습니다. 다음은 SequenceInputStream의 생성자와 주요 메서드 몇 가지입니다. 생성자 - SequenceInputStream(InputStream s1, InputStream s2): 두 개의 입력 스트림 s1과 ..

JAVA/포스팅 2023.11.26

자바 DataOutputStream

DataOutputStream 클래스는 자바의 출력 스트림을 통해 기본 데이터 유형을 쓸 수 있게 해주는 보조 스트림 중 하나입니다. 주로 원시 데이터 타입의 바이너리 형식으로 데이터를 저장할 때 사용됩니다. DataOutputStream은 기본 데이터 타입(primitive data types)과 문자열을 바이너리 형태로 쓸 수 있습니다. 예를 들어, int, double, boolean, char 등의 기본 데이터 유형을 바이트 스트림에 쓰는 데 사용됩니다. 다음은 DataOutputStream의 주요 메서드 몇 가지입니다: - writeBoolean(boolean v): 바이트 스트림에 boolean 값을 씁니다. - writeByte(int v): 바이트 스트림에 byte 값을 씁니다. - wri..

JAVA/포스팅 2023.11.26

자바 DataInputStream

DataInputStream 클래스는 자바의 입력 스트림을 통해 기본 데이터 유형을 읽을 수 있게 해주는 보조 스트림 중 하나입니다. 주로 원시 데이터 타입의 바이너리 형식으로 저장된 데이터를 읽을 때 사용됩니다. DataInputStream은 기본 데이터 타입(primitive data types)과 문자열을 바이너리 형태로 읽을 수 있습니다. 예를 들어, int, double, boolean, char 등의 기본 데이터 유형을 바이트 스트림으로부터 읽어오는 데 사용됩니다. 다음은 DataInputStream의 주요 메서드 몇 가지입니다: - readBoolean(): 바이트 스트림에서 boolean 값을 읽습니다. - readByte(): 바이트 스트림에서 byte 값을 읽습니다. - readShor..

JAVA/포스팅 2023.11.26

자바 BufferedOutputStream

BufferedOutputStream 클래스는 출력 스트림에 대한 출력을 버퍼링하는 데 사용되는 클래스입니다. 이 클래스는 성능 향상을 위해 입출력 속도를 최적화합니다. BufferedOutputStream은 내부에 바이트 배열 버퍼를 유지하고, write 메서드를 통해 데이터를 버퍼에 쓰기합니다. 이를 통해 한 번에 작은 양의 데이터가 아니라 여러 바이트를 한 번에 쓸 수 있으므로 성능이 향상됩니다. 다음은 BufferedOutputStream을 사용하는 간단한 예제입니다. import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; pu..

JAVA/포스팅 2023.11.26

자바 BufferedInputStream

BufferedInputStream 클래스는 입력 스트림에 대한 입력을 버퍼링하는 데 사용되는 클래스입니다. 이 클래스는 성능 향상을 위해 입출력 속도를 최적화하는 데 도움을 줍니다. BufferedInputStream은 내부에 바이트 배열 버퍼를 유지하고, read 메서드를 통해 데이터를 버퍼에서 읽어옵니다. 일반적으로 한 번에 하나의 바이트가 아닌 여러 바이트를 읽어와서 버퍼에 저장하므로, 실제 입력 스트림에서 읽어오는 횟수를 줄여 성능을 향상시킬 수 있습니다. 다음은 BufferedInputStream을 사용하는 간단한 예제입니다. import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException..

JAVA/포스팅 2023.11.26

자바 FilterOutputStream

FilterOutputStream 클래스는 다른 출력 스트림에 대한 필터의 기본 클래스입니다. 이 클래스는 다양한 종류의 출력 스트림에서 데이터를 쓸 때 필요한 추가 기능을 제공합니다. 주로 다른 출력 스트림에 보조 기능을 추가하기 위해 사용됩니다. - FilterOutputStream 클래스의 주요 하위 클래스로는 BufferedOutputStream, DataOutputStream, PrintStream 등이 있습니다. 각각이 제공하는 기능은 각각 버퍼링, 데이터 형식 변환, 출력 스트림에 직접 텍스트를 쓰기 등입니다. - FilterOutputStream 클래스는 OutputStream 클래스를 상속하며, 필터 출력 스트림에서 기본적으로 제공되는 write 메서드를 구현하여 필터링된 데이터를 쓸 수..

JAVA/포스팅 2023.11.26

자바 FilterInputStream

FilterInputStream은 다른 입력 스트림을 기반으로 하는 보조 입력 스트림의 추상 기본 클래스입니다. 이 클래스는 다양한 종류의 입력 스트림에서 데이터를 읽을 때 필요한 보조 기능을 제공합니다. 여러 유형의 필터 입력 스트림이 이 클래스를 확장하고 있습니다. - FilterInputStream 클래스의 주요 하위 클래스로는 BufferedInputStream, DataInputStream, PushbackInputStream 등이 있습니다. 이 클래스들은 각각 버퍼링, 데이터 형식 변환, 백업 기능 등의 기능을 추가합니다. - FilterInputStream 클래스는 주로 다른 스트림에 추가적인 기능을 제공하기 위해 상속되어 사용됩니다. 이 클래스는 추상 클래스이므로 직접 인스턴스를 생성하여 ..

JAVA/포스팅 2023.11.26

자바 FileOutputStream

FileOutputStream은 파일에 바이트 단위로 데이터를 쓰기 위한 출력 스트림입니다. 이 클래스를 사용하면 프로그램에서 생성한 데이터를 파일로 출력할 수 있습니다. FileOutputStream을 사용하는 주요 작업은 다음과 같습니다. 1. 파일 열기 (Opening a File): FileOutputStream 객체를 생성할 때 출력할 파일의 경로를 매개변수로 전달하여 파일을 엽니다. 파일이 존재하지 않으면 새로운 파일이 생성됩니다. 2. 데이터 쓰기 (Writing Data): write 메서드를 사용하여 바이트 단위로 데이터를 파일에 씁니다. 이 메서드는 매개변수로 전달된 바이트 배열을 파일에 기록합니다. 3. 스트림 닫기 (Closing the Stream): 파일 쓰기 작업이 끝나면 cl..

JAVA/포스팅 2023.11.25

자바 ByteArrayOutputStream

ByteArrayOutputStream은 메모리 상의 바이트 배열에 데이터를 출력하는 출력 스트림입니다. 주로 데이터를 메모리에 쓰거나 다루어야 하는 경우에 사용됩니다. ByteArrayOutputStream의 주요 기능은 다음과 같습니다: 1. 데이터 쓰기 (Writing Data): write 메서드를 사용하여 바이트 데이터를 출력 스트림에 쓸 수 있습니다. 2. 스트림 닫기 (Closing the Stream): close 메서드를 호출하여 스트림을 닫을 수 있습니다. 이는 메모리 누수를 방지하고 자원을 해제하는 데 도움이 됩니다. 3. 바이트 배열 얻기 (Getting the Byte Array): toByteArray 메서드를 호출하여 현재까지 출력된 데이터를 바이트 배열로 얻을 수 있습니다. ..

JAVA/포스팅 2023.11.25

자바 ByteArrayInputStream

ByteArrayInputStream은 메모리 상의 바이트 배열로부터 데이터를 읽어오는 입력 스트림입니다. 주로 바이트 배열에서 데이터를 읽어오는 작업에 사용됩니다. 이 클래스의 생성자는 바이트 배열을 받아 ByteArrayInputStream 객체를 생성합니다. public class ByteArrayInputStreamExample { public static void main(String[] args) { // 예제 바이트 배열 생성 byte[] data = { 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100 }; // ByteArrayInputStream 생성 try (ByteArrayInputStream bais = new ByteArrayInp..

JAVA/포스팅 2023.11.25

자바 OutputStream

자바의 OutputStream은 바이트 기반 출력 스트림을 나타내는 추상 클래스입니다. OutputStream은 바이트 단위로 데이터를 출력할 수 있는 메서드를 정의하고 있습니다. 마찬가지로 InputStream과 마찬가지로 이 클래스는 추상 클래스이므로 직접적으로 인스턴스를 생성하여 사용하는 것이 아니라, 이를 상속받아 구현한 구체적인 클래스들을 사용합니다. 주요 OutputStream 하위 클래스들과 이들의 주요 메서드에 대해 알아보겠습니다. 1. FileOutputStream 파일에 바이트 단위로 데이터를 출력하는 데 사용됩니다. try (FileOutputStream fos = new FileOutputStream("example.txt")) { byte[] data = "Hello, World!..

JAVA/포스팅 2023.11.25

자바 InputStream

자바의 InputStream은 바이트 기반 입력 스트림을 나타내는 추상 클래스입니다. 이 클래스는 바이트 단위로 데이터를 읽을 수 있는 메서드를 정의하고 있습니다. InputStream은 추상 클래스이므로 직접 인스턴스를 생성하여 사용하는 것이 아니라, 이를 상속받아 구현한 구체적인 클래스들을 사용합니다. 주요 InputStream 하위 클래스들과 이들의 주요 메서드에 대해 알아보겠습니다. 1. FileInputStream 파일에서 바이트 단위로 데이터를 읽는 데 사용됩니다. try (FileInputStream fis = new FileInputStream("example.txt")) { int data; while ((data = fis.read()) != -1) { // 읽은 데이터 처리 } } c..

JAVA/포스팅 2023.11.25

자바 문자기반 스트림

자바의 문자 기반 스트림은 문자(char) 데이터를 입출력하는 데 사용되는 스트림입니다. 주로 텍스트 파일이나 문자열과 같은 문자 데이터를 처리할 때 유용합니다. 여기에는 주요한 문자 기반 스트림 몇 가지가 있습니다. 1. FileReader 및 FileWriter FileReader 및 FileWriter는 파일에서 문자를 읽고 쓰는 데 사용됩니다. try (FileReader reader = new FileReader("input.txt"); FileWriter writer = new FileWriter("output.txt")) { int data; while ((data = reader.read()) != -1) { writer.write(data); } } catch (IOException e)..

JAVA/포스팅 2023.11.25

자바 보조스트림

자바의 보조 스트림은 기본 스트림에 부가적인 기능을 제공하여 입출력을 편리하게 처리할 수 있게 해주는 스트림입니다. 보조 스트림은 다른 스트림을 기반으로 하며, 실제 데이터를 입출력하는 기본 스트림에 연결하여 사용됩니다. 주요한 보조 스트림들은 다음과 같습니다. 1. Buffered 스트림 BufferedInputStream 및 BufferedOutputStream은 입출력 성능을 향상시키기 위해 버퍼를 사용하는 스트림입니다. 내부적으로 데이터를 미리 버퍼에 읽어두거나 쓴 후에 실제 입출력 스트림과 통신합니다. try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream("example.txt")); BufferedOutputStr..

JAVA/포스팅 2023.11.25

자바 바이트기반 스트림

자바의 바이트 기반 스트림은 데이터를 바이트 단위로 처리하는 스트림입니다. 이러한 스트림은 주로 이미지, 동영상, 음악 파일 등 이진 데이터를 다룰 때 사용됩니다. 주요한 바이트 기반 스트림 클래스들은 InputStream 및 OutputStream을 확장한 클래스들입니다. 1. InputStream 클래스와 하위 클래스들 - FileInputStream : FileInputStream 클래스는 파일로부터 바이트 단위로 데이터를 읽어오는 클래스입니다. try (FileInputStream fis = new FileInputStream("example.txt")) { int data; while ((data = fis.read()) != -1) { System.out.print((char) data); }..

JAVA/포스팅 2023.11.25

자바 입출력

자바에서의 입출력은 java.io 패키지를 통해 제공됩니다. 여기에는 텍스트 및 이진 데이터를 읽고 쓰기 위한 다양한 클래스와 인터페이스가 포함되어 있습니다. 1. 스트림 (Streams) 자바의 입출력 작업은 스트림을 사용하여 이루어집니다. 스트림은 데이터를 읽거나 쓰는데 사용되는 일련의 연속적인 흐름입니다. 스트림은 입력 스트림(InputStream), 출력 스트림(OutputStream), 문자 입력 스트림(Reader), 문자 출력 스트림(Writer)으로 구분됩니다. 2. 파일 입출력 자바에서 파일을 읽고 쓰기 위해 사용되는 기본 클래스에는 FileInputStream, FileOutputStream, FileReader, FileWriter 등이 있습니다. 파일에서 데이터 읽기 try (Fil..

JAVA/포스팅 2023.11.25

자바 스트림의 변환

Java 스트림에서는 변환 연산을 사용하여 스트림의 요소를 다른 형태로 변환할 수 있습니다. 변환 연산은 스트림의 요소를 매핑하거나 필터링하는 데 사용됩니다. 주요한 변환 연산에는 map, flatMap, filter, distinct, sorted 등이 있습니다. 1. map() 변환 map 연산은 각 요소를 특정 함수에 매핑하여 새로운 값을 생성합니다. 예를 들어, 주어진 리스트의 각 숫자를 제곱하여 새로운 리스트를 생성할 수 있습니다. List numbers = Arrays.asList(1, 2, 3, 4, 5); List squaredNumbers = numbers.stream() .map(x -> x * x) .collect(Collectors.toList()); System.out.printl..

JAVA/포스팅 2023.11.25

자바 Collector구현하기

Java에서 Collector를 직접 구현하는 것은 강력한 커스터마이징 기능을 제공하며, 특정한 요구사항에 따라 스트림의 요소를 수집할 수 있습니다. Collector는 다음의 세 가지 메서드를 가지고 있습니다. 1. Supplier supplier() 새로운 누적기(accumulator) 인스턴스를 생성하는 함수를 반환합니다. 2. BiConsumer accumulator() 누적기에 요소를 추가하는 함수를 반환합니다. 3. BinaryOperator combiner() 두 누적기를 결합하는 함수를 반환합니다. 병렬 스트림에서 사용됩니다. 4. Function finisher() 최종 결과를 만들어내는 함수를 반환합니다. 5. Set characteristics() 컬렉터의 특성을 나타내는 불변 집합을..

JAVA/포스팅 2023.11.25

자바 스트림의 최종연산

Java 스트림(Stream)의 최종 연산은 스트림 파이프라인을 마무리하고 최종 결과를 생성하는 단계입니다. 최종 연산은 한 번만 호출될 수 있으며, 최종 연산이 호출되어야 스트림의 요소가 처리됩니다. 최종 연산이 호출되지 않으면 중간 연산은 실행되지 않습니다. 여기에는 다양한 종류의 최종 연산이 있습니다. 몇 가지 주요한 최종 연산에 대해 설명하겠습니다. 1. forEach(Consumer action) 각 요소에 대해 주어진 동작을 수행합니다. 병렬 스트림의 경우 요소의 순서는 보장되지 않습니다. List strings = Arrays.asList("apple", "banana", "orange"); strings.stream().forEach(System.out::println); 2. toArra..

JAVA/포스팅 2023.11.25

자바 OptionalInt

Java 8부터 도입된 OptionalInt 클래스는 int 값을 포함하거나 아니거나를 나타내는 컨테이너 클래스입니다. 기본형 int 값을 다루는데 특화된 옵셔널 클래스로, OptionalInt를 사용하면 값이 없는 경우에 대한 명시적인 처리가 가능하며, 기본형 int 값을 반환하는 메서드에서 사용할 수 있습니다. OptionalInt 클래스 주요 메서드 1. empty() 빈 OptionalInt 객체를 반환합니다. OptionalInt emptyOptional = OptionalInt.empty(); 2. of(int value) 주어진 값으로 OptionalInt 객체를 생성합니다. 값이 null이면 NullPointerException이 발생합니다. OptionalInt optional = Opt..

JAVA/포스팅 2023.11.25

자바 Optional〈T〉

자바 8부터 도입된 Optional 클래스는 값이 존재할 수도 있고 아닐 수도 있는 컨테이너입니다. 이 클래스는 null을 사용하는 것보다 안전하게 코드를 작성하고, 명시적으로 값의 존재 여부를 다룰 수 있도록 도와줍니다. 아래는 Optional의 주요 메서드와 사용 예제입니다. 주요 메서드 1. of(T value) 주어진 값으로 Optional 객체를 생성합니다. 값이 null이면 NullPointerException이 발생합니다. Optional value = Optional.of("Hello"); 2. ofNullable(T value) 주어진 값으로 Optional 객체를 생성합니다. 값이 null이어도 에러가 발생하지 않습니다. Optional value = Optional.ofNullable..

JAVA/포스팅 2023.11.23

자바 스트림의 중간연산

자바 스트림(Stream)의 중간 연산은 스트림을 변환하거나 필터링하고, 원소들에게 변형을 가할 수 있는 연산입니다. 중간 연산은 스트림을 리턴하므로, 여러 중간 연산을 연결하여 복잡한 처리를 수행할 수 있습니다. 아래는 주요한 중간 연산에 대한 설명입니다. 1. filter(Predicate predicate) 조건에 맞는 요소만을 필터링합니다. List fruits = Arrays.asList("apple", "banana", "orange", "kiwi"); // 길이가 6 이상인 과일만 필터링 List result = fruits.stream() .filter(fruit -> fruit.length() >= 6) .collect(Collectors.toList()); 2. map(Function ..

JAVA/포스팅 2023.11.23

자바 스트림 만들기

자바에서는 다양한 방법으로 스트림을 만들 수 있습니다. 주로 컬렉션, 배열, 파일, 랜덤 값 등 다양한 데이터 소스를 기반으로 스트림을 생성할 수 있습니다. 아래에 몇 가지 주요한 스트림 생성 방법을 설명하겠습니다. 1. 컬렉션으로부터 스트림 만들기 리스트, 세트, 맵과 같은 컬렉션 인터페이스를 사용하여 스트림을 생성할 수 있습니다. List myList = Arrays.asList("apple", "banana", "orange"); // 컬렉션에서 스트림 생성 Stream streamFromList = myList.stream(); 2. 배열로부터 스트림 만들기 배열을 이용하여 스트림을 생성할 수 있습니다. String[] array = {"apple", "banana", "orange"}; // 배..

JAVA/포스팅 2023.11.23