ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2byteStream
    java 2020. 5. 9. 23:47

    참조 : 인프런 - 안드로이드를 위한 자바 - 2byte Stream

    ●2바이트 입출력 스트림

    -주로 문자열을 라인 단위로 입출력할 때 사용한다.

    -2바이트 입출력 스트림을 이용하면 키보드를 통해 입력을 받거나 콘솔로 송출할 때 편하게 할 수 있다.

    -사용해야 하는 필터스트림이 좀 많은 편이긴 하나 데이터를 라인 단위로 입출력 할 수 있다는 편리성을 가지고 있어서 많이 사용하고 있다.

     

    정리 

    -데이터를 라인 단위로 입출력하는 스트림이 2바이트 입출력 스트림이다.

     

    정확히 따지면 2바이트 입출력 스트림은 자바에서는 글자 하나를 2바이트로 취급을 한다.

    2바이트 스트림은 문자열을 입출력할 때 사용하는 스트림이다.

    2바이트 입출력 스트림을 사용하면 라인단위로 입출력이 가능하다.

    System.out.println()이 대표적인 라인단위 입출력을 할 수 있는 2바이트 입출력 스트림이다.

    필요한 경우 기본 스트림과 연결된 버퍼드 리더, 버퍼드 라이터를 만들어 주면 2바이트 입출력이 가능해 진다.

     

     

    콘솔송출

    import java.io.BufferedWriter;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    
    //콘솔 송출
    public class TwoByteStream1 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		try {
    			//2바이트 입출력 사용해 콘솔로 출력
    			//콘솔로 출력을 할거기 때문에 콘솔과 연결되어 있는 기본스트림이 필요하다.
    			//시스템 클래스에 있는 out이 콘솔과 연결되어 있는 기본 스트림이다.
    			OutputStreamWriter osw = new OutputStreamWriter(System.out);
    			BufferedWriter bw = new BufferedWriter(osw);
    			//프로그램이 실행이 되면 입출력을 할 수 있는 입출력 버퍼라는 것이 할당이 된다.
    			//입출력 버퍼에 할당해 놓으면 데이터를 송수신 할때 데이터가 날아가버리는 것을 방지할 수 있다.
    			//여기서 버퍼드리드, 버퍼드 라이터를 가지고 데이터를 쓰게 되면 어떤 특정영역에 데이터를 쓰는것이 아니라
    			//메모리상에 존재하는 버퍼영역에 쓰게 된다.
    			//그래서 일단 버퍼영역으로 송출한다.
    			PrintWriter pw = new PrintWriter(bw);
    			//버퍼에 들어있는 것을 라인단위로 출력한다.
    			pw.println("안녕하세요");
    			pw.println("반갑습니다");
    			pw.flush();
    			pw.close();
    			bw.close();
    			osw.close();
    			
    			//System.out.println();과 동일하게 동작한다.
    			//바로 System.out.println();이 이렇게 구현이 되어져 있는 것이다.
    			//자바에서는 그래서 그냥 System.out.println();를 써주면 된다.
    		}catch(Exception e) {
    			
    		}
    		
    	}
    
    }
    

     

    콘솔인풋(콘솔에서 데이터 가져오기)

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    //콘솔 입력에서 데이터 읽어오기
    public class TwoByteStream3 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		try {
    			InputStreamReader isr = new InputStreamReader(System.in);//System.in은 컴퓨터에 있는 키보드와 연결되어 있는 스트림
    			BufferedReader br = new BufferedReader(isr);
    			System.out.println("키보드로 입력해주세요 :");
    			String str = br.readLine();
    			System.out.println(str);
    			br.close();
    			isr.close();
    		}catch(Exception e) {
    			
    		}
    	}
    
    }
    

     

    파일 송출

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.PrintWriter;
    
    //파일 송출
    public class TwoByteStream2 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		try {
    			File file = new File("D:\\Test!!!!!\\c.txt");//c.txt라는 파일을 관리해 줄 수 있는 파일 객체를 만든 것
    			FileWriter fw = new FileWriter(file);
    			BufferedWriter bw = new BufferedWriter(fw);
    			PrintWriter pw = new PrintWriter(bw);
    			
    			pw.println("안녕하세요");
    			pw.println("반갑습니다");
    			pw.flush();
    			pw.close();
    			bw.close();
    			fw.close();
    		}catch(Exception e) {
    			
    		}
    	}
    
    }
    

     

    파일 인풋

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    
    public class TwoByteStream4 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		try {
    			File file = new File("D:\\Test!!!!!\\c.txt");
    			FileReader fr = new FileReader(file);
    			BufferedReader br = new BufferedReader(fr);
    			String str1 = br.readLine();
    			String str2 = br.readLine();
    			String str3 = br.readLine();
    			
    			br.close();
    			fr.close();
    			
    			System.out.println(str1);
    			System.out.println(str2);
    			System.out.println(str3);
    		}catch(Exception e) {
    			
    		}
    	}
    
    }
    

    'java' 카테고리의 다른 글

    네트워크  (0) 2020.05.10
    ObjectStream  (0) 2020.05.10
    데이터 스트림  (0) 2020.05.09
    FileStream  (0) 2020.05.09
    폴더가 존재하는지 존재하지 않는지 보고 존재하지 않으면 생성  (0) 2020.05.09

    댓글

Designed by Tistory.