본문 바로가기

언어/Java

(93)
필터스트림, 직렬화 예시 public class ObjectIOTest { public static void write() { /* * 스트림: 바이트단위 출력스트림 * 필터스트림: 객체단위출력스트림 * 목적지 : 파일 */ String fileName = "a.ser"; ObjectOutputStream oos = null; try { oos = new ObjectOutputStream(new FileOutputStream(fileName)); oos.writeObject(new Date()); } catch (IOException e) { e.printStackTrace(); } finally { if(oos != null) { try { oos.close(); } catch (IOException e) { e.printSt..
필터스트림, 객체직렬화 보조 스트림(=필터스프림) 이란 다른 스트림과 연결되어 여러 가지 편리한 기능을 제공해주는 스트림을 말한다. 보조 스트림은 자체적으로 입출력을 수행할 수 없기 때문에 입출력 소스로부터 직접 생성된 입출력 스트림에 연결해서 사용해야 한다. cf) 입력스트림(노드스트림) - 직접 자원을 만남 ex) a.txt → FileInputStream 입력스트림(노드스트림) → 이걸 가공해서 DataInputStream 보조스트림 DataOutputStream → FileInputStream → b.txt // 바이트 입력 스트림인 FileInputStream에 InputStreamReader 보조 스트림 연결 // InputStreamReader 바이트 스트림을 문자 스트림으로 변환 // 가공해서 String으로 씀..
메타클래스, File 정보 가져오기 ※ 메타클래스(메타정보를 갖는 클래스, 정보를 담고 있는 클래스, 실행이나 객체생성 용도 X) java.lang.Object - 객체정보를 갖고있는 클래스 java.lang.Class - 클래스정보를 갖고있는 클래스 java.io.File - 파일정보를 갖고있는 클래스 public class FileTest { public static void main(String[] args) { File f; f = new File("D:\\"); if(f.isDirectory()) { // if(f.isDirectory()==true) { 같은말 String[] list = f.list(); //f.list = f.list Directory가 가지고 있는 파일명, 하위 디렉토리명 배열로 반환 for(String s..
FileCopy 예제 oop> java -cp bin FileCopy 복사할 원본파일명을 입력하세요 : D:\a.txt 붙여넣기할 파일명을 입력하세요: D:\acopy.txt 원본파일이 없는 경우 "복사할 원본파일이 없습니다" 메세지 출력된다 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; public class FileCopy { public static void main(String[] args) { Scanner sc =new Scanner(System.in); System.out.print..
입출력 스트림 예시 public class FileIOTest { public static void write() { /* * 스트림종류 : 바이트출력스트림 * 목적지 : 파일 */ String fileName = "D:\\b.txt"; FileOutputStream fos = null; try { fos = new FileOutputStream(fileName); //fos.write(65); byte[] bytes = "ABCDEFG".getBytes(); fos.write(bytes); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main..
프린트 스트림, System.in 예시 ※ OutputStream은 바이트 출력 스트림의 최상위 클래스로 추상 클래스이다. 모든 바이트 출력 스트림 클래스는 이 OutputStream 클래스를 상속받아서 만들어진다. ※ PrintStream과 PrintWriter는 프린터와 유사하게 출력하는 print(), println(), printf() 메소드를 가지고 있는 보조 스트림이다. 콘솔에 출력할 때 System.out.println()을 사용한 이유가 out이 PrintStream 타입이기 때문이다. ※ printf() 메소드 웹에서는 잘 사용안한다. 이건 형식화된 문자열을 출력한다. C언어의 개념 package ch18.sec09; import java.io.FileOutputStream; import java.io.PrintStream; ..
입출력 스트림(Stream) 데이터는 키보드를 통해 입력될 수도 있고, 파일 또는 프로그램으로부터 입력될 수 있다. 반대로 데이터는 모니터로 출력될 수도 있고, 파일에 저장되거나 다른 프로그램으로 전송할 수 있다. 이것을 총칭해서 데이터 입출력이라고 한다. ※ 입출력 단위 : 스트림(Stream, 물줄기) 순차데이터흐름, 단방향 흐름 프로그램을 기준으로 데이터가 들어오면 입력스트림 데이터가 나가면 출력 스트림 프로그램이 다른 프로그램과 데이터를 교환하려면 양쪽 모두 입력 스트림과 출력 스트림이 필요 입력스트림용 API 출력스트림용 API → 4개 다 추상스트림. new 키워드 가질 수 없다 byte 단위 java.io.InputStream java.io.OutputStream → 1byte씩 char 단위 java.io.Reader..
어노테이션(Annotation) ※ 어노테이션(Annotation) 코드에서 @으로 작성되는 요소를 어노테이션이라고 한다. 어노테이션은 클래스 또는 인터페이스를 컴파일하거나 실행할 때 어떻게 처리해야할 것인지를 알려주는 설정 정보. 어노테이션은 다음 세 가지 용도로 사용된다. ① 컴파일 시 사용하는 정보 전달 ② 빌드 툴이 코드를 자동으로 생성할 때 사용하는 정보 전달 ③ 실행 시 특정 기능을 처리할 때 사용하는 정보 전달 컴파일 시 사용하는 정보 전달의 대표적인 예는 @Override 어노테이션이다.