자바 PrintStream VS FileWriter

 package api.io;


import java.io.PrintStream;

/*

* output을 담당하는 스트림클래스는 파일이 존재하지 않으면 파일을만들어서 작업하는 아주 똑똑한 친구들 입니다

* PrintStream은 jvm의 기본 문자셋에 맞춰서 문자열을 바이트 단위로 변환해서 사용하게 해주낟

* 그래서 프린트 스트림은 내부적으로 utf-16을 사용하므로 한글반환이 가능하다

* 여기서 utf-16이란 무엇인가? 암호학 가라

*

* 바이트 char= 미터 센치미터 피트 단위로 생각해라

*

*/

public class PrintStreamTest {


public static void main(String[] args) throws Exception{

// TODO Auto-generated method stub

//프린트 스트림은 유니코드방식이 내부적으로 적용이 돼어져있어서

//한글이 안꺠진다

//님아

//자바 인터프리터가 메인메소드 호출하는걸 제가 어케 알아요

//제대로 설명해줘야 알지요

PrintStream ps= new PrintStream("src/data/p_out.txt");

//위는 줄이 뜬다

//근데 연습중에는 에러신경안쓰고프니 메인으로 넘길거다 하면 throws보내

String str="wkqk";

String str2="gogo";

//파이썬 c포멧풀력이 자바에도 있네

ps.printf("%s,%s %n",str,str2);

ps.println("c");

ps.close();

}


}



package api.io;


import java.io.FileWriter;


public class FileWriterTest {


//축구심판이 처리하기 귀찮아서 var로 보낼거임 throws

public static void main(String[] args) throws Exception{

// TODO Auto-generated method stub

//출력할 파일과 연결(파일열기)

//=>파일이 존재하지 않으면 파일을 생성해서 사용한다

//여기서 질문 생성가능한 파일의 종류는?

FileWriter fw = new FileWriter("src/data/result.txt");

//파일엑세스

fw.write(97);

fw.write("안녕");

//터널 폐쇄후 사람 퇴근시키기

fw.close();


}


}





FileWriter사용시 주의점


FileWriter는 버퍼가 다 차지않으면 파일이 쓰여지지 않는다

close메소드(법)은 버퍼가 다 차지않아도 버퍼의 내용을 쓰는데(버퍼를 비운다)

flush메소드는 파일이 가진 버퍼에 뭐가 있으면 비우겠다는거다

close안에 flush메소드가 있어서 문제가 없는데

사람인지라 close를 안하게 돼는 실수가 발생한다!

그래서 이 flush라는 개념을 알아보자



댓글

가장 많이 본 글