-
2byteStreamjava 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