'I/O'에 해당되는 글 1건

  1. 2014.02.24 자바 입출력(I/O) - 스트림(Stream) 입출력

자바 입출력은 하나의 형식으로 콘솔, 파일, 네트워크 등 모든 입출력에 사용할 수 있다.

입출력 방식이 스트림(Stream)이냐 텍스트(Text)냐의 차이이다.


자바는 입출력을 스트림에 의존한다. 모든 입출력이 1 Byte의 데이터 흐름으로 여겨진다.


형식별 1 Byte 출력

Console

FileOutputStream fos = new FileOutputStream(FileDescriptor.out);
BufferedOutputStream bos = new BufferedOutputStream(fos, 1024);
DataOutputStream dos = new DataOutputStream(bos);
dos.write(.....)

File

File file = new File("파일이름");
FileOutputStream fos = new FileOutputStream(file, false);
BufferedOutputStream bos = new BufferedOutputStream(fos, 1024);
DataOutputStream dos = new DataOutputStream(bos);
dos.write(.....)

Network

Socket soc = new Socket(.....);
BufferedOutputStream bos = new BufferedOutputStream(soc.getOutputStream(), 1024);
DataOutputStream dos = new DataOutputStream(bos);
dos.write(.....)

예제)

import java.io.*; // 입출력을 위해 I/O 패키지 추가 public class IO_Output_Test { public static void main(String[] ar) { try { /* 콘솔에 대한 출력 FileOutputStream fos = new FileOutputStream(FileDescriptor.out); BufferedOutputStream bos = new BufferedOutputStream(fos, 1024); */ // 파일에 대한 출력 File f = new File("./stream_io_test.txt"); FileOutputStream fos = new FileOutputStream(f, true); BufferedOutputStream bos = new BufferedOutputStream(fos, 1024); DataOutputStream dos = new DataOutputStream(bos); byte[] str = new byte[]{(byte)'C', (byte)'o', (byte)'n' , (byte)'s', (byte)'o', (byte)'l', (byte)'e', (byte)' '}; dos.write(str); dos.flush(); dos.close(); } catch (Exception ex) {} } }



형식별 1 Byte 입력

Console

FileInputStream fis = new FileInputStream(FileDescriptor.in);
BufferedInputStream bis = new BufferedInputStream(fis, 1024);
DataInputStream dis = new DataInputStream(bis);
dis.read();

File

File file = new File("파일이름");
FileInputStream fis = new FileInputStream(file, false);
BufferedInputStream bis = new BufferedInputStream(fis, 1024);
DataInputStream dis = new DataInputStream(bis);
dis.read();

Network

Socket soc = new Socket(.....);
BufferedInputStream bis = new BufferedInputStream(soc.getInputStream(), 1024);
DataInputStream dis = new DataInputStream(bis);
dis.read();

예제)

import java.io.*;

public class IO_Input_Test {
	public static void main(String[] arg){
		try {
			/* 콘솔 입력
			FileInputStream fis = new FileInputStream(FileDescriptor.in);
			BufferedInputStream bis = new BufferedInputStream(fis, 1024);
			DataInputStream dis = new DataInputStream(bis);
			
			System.out.print("입력: ");
			int x = dis.read();
			System.out.println("입력된 데이터는 " + (char)x + "이다.");
			dis.close();
			*/

                        // 파일 입력
			File f = new File("./stream_io_test.txt");
			FileInputStream fis = new FileInputStream(f);
			BufferedInputStream bis = new BufferedInputStream(fis, 1024);
			DataInputStream dis = new DataInputStream(bis);
			
			while(true) {
				int x = dis.read();
				if (x<0) break;
				System.out.print((char)x);
			}
			
			dis.close();
		} catch (Exception e) {}
	}

}


Posted by 후니아부지
: