목록
'java' 76건
-
파일 입출력 응용: 파일 복사파일은 문자열로 이루어진 텍스트 파일과 이미지나 오디오 혹은 그래픽 등 바이너리 코드로 이루어진 바이너리 파일로 나뉜다. 바이너리 파일은 바이트 스트림으로 읽고 써야 정확하게 복사가 이루어지지만, 텍스트 파일은 문자 스트림이나 바이트 스트림 중 어떤 것을 사용해도 복사에 문제가 없다. 텍스트 파일 복사FileReader를 이용하여 텍스트 파일을 읽고 FileWriter로 텍스트 파일에 복사합니다. 파일 경로명은 File 객체를 이용합니다. 텍스트 파일 복사import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class TextCopyEx { public static..
-
File 클래스File 클래스란?File 클래스는 파일이나 디렉터리에 대해, 겅로명, 크기, 타입, 수정 날짜 등의 속성 정보를 재공하고, 파일 삭제, 디렉터리 생성, 파일 이름 변경, 디렉터리 내의 파일 리스트 제공 등 다양한 파일 관리 작업을 지원합니다. File 클래스의 경로명은 java.io.File입니다. 이름과는 달리, File 클래스에는 파일 입출력 기능은 없습니다. File 객체 생성File f = new File("c:\\Temp\\test.txt");File f = new File("c:\\Temp", "test.txt"); // 디렉터리와 파일명을 나누어 전달 메소드설명File(File parent, String child)parent 디렉터리에 child 이름의 서브 디렉터리나 파일을 나타내는 ..
-
FileInputStream을 이용한 바이너리 파일 읽기바이트 스트림으로 파일을 읽는 스트림 클래스는 FileInputStream이며, 생성자와 주요 메소드는 다음과 같습니다.생성자설명FileInputStream(File file)file이 지정하는 파일로부터 읽는 FileInputStream 생성FileInputStream(String name)name이 지정하는 파일로부터 읽는 FileInputStream 생성 메소드설명int read()입력 스트림에서 한 비이트를 얻어 int형으로 리턴int read(byte[] b)최대 배열 b의 크기만큼 바이트를 읽음. 읽는 도중 EOF를 만나면 실제 읽은 바이트 수 리턴int read(byte[] b, int off, int len)최대 len개의 바이트를 열어 b 배열의 off 위치부터 저장, 읽는 도중 EOF를..
-
바이트 스트림 클래스와 FileOutputStream를 이용한 바이너리 파일 쓰기바이트 스트림 클래스바이트 스트림은 바이트 단위로 바이너리 데이터가 흐르는 스트림입니다. 바이트 스트림은 바이러니 데이터를 있는 그대로 입출력하기 때문에 이미지나 동영상 파일 입출력하기 때문에 이미지나 파일 입출력에 필수적이고, 문자들로 구성된 텍스트 파일도 입출력할 수 있습니다. InputStream/OutputStream추상 클래스이며, 바이트 입출력 처리를 위한 공통 기능을 가진 슈퍼 클래스입니다. FileInputStream/FileOutputStream파일 입출력을 위한 클래스로서, 파일로부터 바이너리 데이터를 읽거나 파일에 바이러니 데이터를 저장할 수 있습니다. DataInputStream/DataOutputStream이 스트림을 이용하면 boolean, char, byte, short, in..
-
FileWriter를 이용한 텍스트 파일 쓰기FileWriter를 이용하여 텍스트를 파일에 저장하는 방법을 알아봅시다. 파일 출력 스트림 생성FileWriter fout = new FileWriter("c:\\Temp\\test.txt"); FileWriter의 생성자는 c:\Temp\test.txt 파일을 열어 스트림과 연결합니다. 파일이 없는 경우 빈 파일을 생성하며, 이미 파일이 있는 경우 파일이 있는 경우 파일 내용을 지우고 파일의 처음부터 쓸 준비를 합니다. 파일 쓰기fout 스트림의 write() 메서드를 이용하면 문자 단위로 파일에 저장할 수 있습니다, 다음은 'A'를 파일에 쓰는 코드입니다.fout.write('A'); // 문자 'A'를 파일에 저장 write()를 다음과 같이 이용하면 한 번에 한 블록씩 쓸 수 있습니다.char ..
-
문자 집합과 InputStreamReader를 이용한 텍스트 파일 읽기InputStreamReader는 스트림에 입력되는 바이트 데이트를 문자 집합을 통해 문자로 변환합니다. 이를 위해 InputStreamReader의 생성자에 문자 집합을 지정해야 합니다. 만일 읽어 들인 바이트들이 문자 집합에 속하지 않는 경우 해독할 수 없는 글자가 됩니다.생성자설명InputStreamReader(InputStream in)in으로부터 읽는 기본 문자 집합의 InputStreamReader 생성InputStreamReader(InputStream in, Charset cs)in으로부터 읽는 cs 문자 집합의 InputStreamReader 생성InputStreamReader(InputStream in, String charsetName)in으로부터 읽는 charsetName 문자 집합..
-
FileReader문자 스트림 클래스2바이트의 유니코드 문자를 단위로 출력하는 스트림입니다. 문자화되지 않은 바이너리 바이트 값들은 문자 스트림 클래스에서 처리할 수 없습니다. 따라서 이미지와 같은 바이너리 정보를 처리할 수 없습니다. 문자 입력 스트림은 바이트들을 전달받고, 이 바이트들은 '로컬 문자 집합'에 있는 문자인지 비교하여 문자로 변환합니다. FileReader를 이용한 텍스트 파일 읽기파일 입력 스트림 생성먼저 파일 입력 스트림을 생성하고 스트림을 파일과 연결합니다.FileReader fin = new FileReader("c:\\test.txt'); FileReader의 생성자는 c:\test.txt 파일을 찾아 열고, 파일과 스트림을 연결합니다. c:\test.txt 파일은 문자들로만 구성된 텍스트 파일입..
-
자바의 입출력 스트림스트림 입출력이란?스트림(Stream)이란 연속적인 데이터의 흐름 혹은 데이터를 전송하는 소프트웨어 모듈을 일컫습니다.자바에서 입출력 스트림은 응용 프로그램과 입출력 장치를 연결하는 소프트웨어 모듈입니다. 입력 스트림은 키보드 장치를 제어하여 사용자의 키 입력을 받아 응용 프로그램에게 전달합니다. 또한, 응용 프로그램은 출력 스트림에 연결하고 출력 스트림에 출력하면, 출력 스트림인 다른 끝단에 연결된 출력 장치르 제어하여 출력을 완성합니다.스트림 입출력 방식에서, 자바 응용 프로그램은 입출력 장치를 직접 제어하는 대신, 입출력 스트림 객체와 연결하여 쉽게 데이터 입출력을 실행합니다. 스트림의 양끝에는 입출력 장치와 자바 응용프로그램이 연결됩니다.자바 응용프로그램은 입력 스트림과 출력 스트림만 연결하고, ..
-
제네릭 만들기제네릭 클래스제네릭 클래스를 작성하는 방법은 기존의 클래스 작성 방법과 유사한데, 클래스이름 다음에 일반화된 타입(generic type)의 매개변수를 사이에 추가한다는 차이가 있습니다. 제네릭 클래스 작성타입 매개변수를 T를 가진 제네릭 클래스 MyClass는 다음과 같이 작성합니다.public class MyClass { // 제네릭 클래스 Myclass, 타입 매개변수 T T val; // 변수 val의 타입은 T void set(T a) { val = a; // T 타입의 값 a를 val에 저장 } T get() { return val; // T 타입의 값 val 리턴 }} 제네릭 클래스에 대한 레퍼런스 변수 선언제네릭 클래스의 레퍼런스 변수를 선언할 때 다음과 같이 타입 매개변수에 구체적인..
-
LinkedList<E> & Collections 클래스 활용LinkedListLinkedList는 List 인터페이스를 구현한 클래스로서 경로명이 java.util.LinkedList입니다. LinkedList는 요소들을 양방향으로 연결하여 관리한다는 점을 제외하고 Vector, ArrayList와 거의 같습니다. LinkedList는 맨 앞과 맨 뒤를 가리키는 head, tail 레퍼런스를 가지고 있어, 맨 앞이나 맨 뒤, 중간에 요소의 삽입이 가능하며 인덱스를 이용하여 요소에 접근할 수도 있습니다. Collections 클래스 활용java.util 패키지에 포함된 Collections 클래스는 다음과 같이 컬렉션을 다루는 유용한 여러 메소드를 지원합니다.sort() - 컬렉션에 포함된 요소들의 정렬reverse() - 요소를 반대 순으로 정렬max(), mi..
-
컬렉션의 순차 검색을 위한 IteratorVector, ArrayList, LinkedList, Set과 같이 요소사 순서대로 저장된 컬렉션에서 요소를 순차 검색할 때 java.util 패키지의 Iterator 인터페이스를 사용하면 편리합니다. 여기서 에는 컬렉션의 메개변수와 동일한 타입을 지정해야 합니다. Iterator의 메소드 간단하지만 매우 강력합니다. 다음 백터가 있다고 합시다.Vector v = new Vector(); // 요소가 Integer 타입인 백터 다음과 같이 벡터 v의 iterator()를 호출히여, 벡터 v의 각 요소를 순차적으로 검색할 수 있는 Iterator 객체를 얻어냅니다. Iterator 객체를 반복자라고 부릅니다.Iterator it = v.iterator(); // 벡터 v의 요소를 순차 검색할 Iterat..
-
ArrrayList<E>ArrayList(이하 ArrayList)는 가변 크기의 배열을 구현한 컬렉션 클래스로서 경로명은 java.util.ArrayList이며, Vector 클래스와 거의 동일합니다. 크게 다른 점은 ArrayList는 스레드 간에 동기화를 지원하지 않기 때문에, 다수의 스레드가 동시에 ArrayList에 요소를 삽입하거나 삭제할 때 ArrayList의 데이터가 훼손될 유려가 있습니다. 하지만 멀티스레드 동기화를 위한 시간 소모가 없기 때문에, ArrayList는 Vector보다 속도가 빨라, 단일 스레드 응용에는 더 효과적입니다.ArrayList 객체의 내부 구성을 보여줍니다. 내부의 배열을 가지고 있으며 이 배열을 가변 크기로 관리합니다. ArrayList는 인덱스로 요소를 접근할 수 있으며, 인덱스는 0..