-
기본타입 입출력 보조 스트림-22.04.01고급자바 2022. 4. 1. 16:33728x90
기본타입 입출력 보조 스트림 예제

public class T13_DataIOStreamTest { public static void main(String[] args) { FileOutputStream fos=null; //출력용 데이터를 자료형에 맞게 출력해 준다. DataOutputStream dos=null; try { fos= new FileOutputStream("d:/D_Other/test.dat"); //기본 dos=new DataOutputStream(fos); dos.writeUTF("홍길동"); //문자열 데이터 출력(UTF-8) dos.writeInt(17); //정수형으로 데이터 출력 dos.writeFloat(3.14f); //실수형(Float)으로 데이터 출력 dos.writeDouble(3.14); //실수형(Double)으로 데이터 출력 dos.writeBoolean(true); //논리형으로 데이터 출력 System.out.println("출력완료..."); }catch(IOException ex) { ex.printStackTrace(); }finally { try { dos.close(); } catch (IOException e) { e.printStackTrace(); } } } }
출력한 자료 읽어오기
public class T13_DataIOStreamTest { public static void main(String[] args) { //출력한 자료 읽어오기 FileInputStream fis=null; DataInputStream dis=null; try { fis= new FileInputStream("d:/D_Other/test.dat"); //기본 dis=new DataInputStream(fis); //보조 System.out.println("문자열 자료: "+dis.readUTF()); System.out.println("정수형 자료: "+dis.readInt()); System.out.println("실수형(Float) 자료: "+dis.readFloat()); System.out.println("실수형(Double) 자료: "+dis.readDouble()); System.out.println("논리형 자료: "+dis.readBoolean()); }catch(IOException ex) { ex.printStackTrace(); }finally { try { dos.close(); } catch (IOException e) { e.printStackTrace(); } } } }
만약에 자료출력 순서를 바꿔버리면 꼬일 수도 있다. 순서대로 자료형에 맞게 바이트가 되어있는데 순서를 어기면 잘려서 가져올 수 있기 때문이다.
프린터 기능 제공 보조 스트림 예제
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; public class T14_PrintStreamTest { public static void main(String[] args) throws IOException { /* PrintStream은 모든 자료형을 출력할 수 있는 기능을 제공하는 OutputStream의 서브클래스이다. PrintStream은 IOException을 발생시키지 않는다. println 및 print 등 메서드 호출시마다 autoflush 기능이 제공됨. */ FileOutputStream fos= new FileOutputStream("d:/D_Other/print.txt"); PrintStream out =new PrintStream(fos); out.print("안녕하세요. PrintStream입니다.\n"); out.println("안녕하세요. PrintStream입니다2."); out.println("안녕하세요. PrintStream입니다3."); out.println(out); //객체 출력 out.close(); } }
PrintStream은 데이터를 문자로 출력하는 기능을 수행함.(System.out)
향상된 기능의 PrintWriter가 추가되었지만 계속 사용됨.
PrintWriter가 PrintStream 보다 다양한 언어의 문자를 처리하는데 적합하다.
둘다 기본적으로 autoflush 기능이 꺼져 있음.public class T14_PrintStreamTest { public static void main(String[] args) throws IOException { // FileOutputStream fos= new FileOutputStream("d:/D_Other/print.txt"); // // PrintStream out =new PrintStream(fos); // out.print("안녕하세요. PrintStream입니다.\n"); // out.println("안녕하세요. PrintStream입니다2."); // out.println("안녕하세요. PrintStream입니다3."); // out.println(out); //객체 출력 // // out.close(); /* PrintStream은 데이터를 문자로 출력하는 기능을 수행함.(System.out) 향상된 기능의 PrintWriter가 추가되었지만 계속 사용됨. PrintWriter가 PrintStream 보다 다양한 언어의 문자를 처리하는데 적합하다. 둘다 기본적으로 autoflush 기능이 꺼져 있음. */ PrintWriter pw=new PrintWriter(new OutputStreamWriter(new FileOutputStream("d:/D_Other/print2.txt"),"UTF-8")); pw.print("안녕하세요. PrintWriter 입니다.\n"); pw.println("안녕하세요. PrintWriter 입니다2."); pw.println("안녕하세요. PrintWriter 입니다3."); pw.close(); } }
PrintWriter pw=new PrintWriter(new OutputStreamWriter(new FileOutputStream("d:/D_Other/print2.txt"),"UTF-8"));
"UTF-8"에 따라서 저장유형이 달라짐 "ANSI"였다면 ansi로 저장됐을것이다.
728x90'고급자바' 카테고리의 다른 글
직렬화2-22.04.11 (0) 2022.04.11 직렬화,역직렬화-22.04.01 (0) 2022.04.01 성능향상을 위한 보조 스트림-22.04.01 (0) 2022.04.01 보조스트림, 인코딩 -22.04.01 (0) 2022.04.01 스트림-22.04.01 (0) 2022.04.01