코딩 노트

java.file.string 본문

Java

java.file.string

newbyeol 2023. 7. 18. 12:50

문자열 파일 입출력

- 문자열은 byte 또는 char와 상호변환이 가능하다.

 

String s1 = "Hello 안녕하세요";

byte[] b1 = s1.getBytes();

System.out.println(Arrays.toString(b1)); //배열을 출력할 수 있다.

Arrays.toString()을 쓰면 배열을 편하게 출력할 수 있다.

 

UTF-8에서 한글은 한글자가 3byte이다.

 

MS949를 쓰면 깨질 수 있으니 지정을 해줘야 한다.

byte[] b2 = s1.getBytes("MS949");

String s2 = new String(b2, "MS949");

문자열을 위한 클래스 

~Writer : (분해(UTF-8), 버퍼, 스트립이 다 들어있음)

~Reader : (복원(UTF-8), 버퍼, 스트림)

 

문자열 출력

- 문자열 출력은 필연적으로 인코딩이 필요하다.

- Writer 계열의 클래스를 사용하여 처리한다.

 

File directory = new File("sample");

directory.mkdirs(); //폴더 생성

 

//File target = new File("sample/string.sh"); //아래와 같은 것

File target = new File(directory, "string.sh");

 

//FileOutputStream stream = new FileOutputStream(target); 원래 하던 코드

FileWriter fw = new FileWriter(target);

 

//BufferedOutputStream buffer = new BufferedOutputStream(stream); 원래 하던 코드

BufferedWriter bw = new BufferedWriter(fw);

 

//출력

//물론 버퍼가 다 차야 나감

bw.write("Hello");

bw.write("\n");

bw.write("안녕하세요");

bw.write("\n");

bw.write("자바가 다 끝났어요");

 

//정리

//bw.flush();

bw.close();

 

flush()를 하면 즉시 저장이 되기 때문에 프로그램이 끝나지 않아도 들어간다.

 

문자열 입력

1. 일정 글자 수만큼 지정해서 읽는 방법 = FileReader

2. 줄단위로 읽는 방법 = BufferedReader

 

File target = new File("sample/string.kh");

 

FileReader fr = new FileReader(target); //타겟으로 대상을 지정. 내가 읽을 파일은 타겟이다

BufferedReader br = new BufferedReader(fr);

 

String line = br.readLine(); //한 줄을 읽어온다.

System.out.println("line = " + line);

위 코드는 한 줄 출력, 밑 코드는 모든 내용 출력이다.

null을 비교할 때 equls가 아니라 등호를 쓰는 이유는 null에는 .을 쓸 수 없기 때문이다.

while(true) {

String line = br.readLine();

if(line == null) break;

System.out.println("line = " + line);

}

 

br.close();

'Java' 카테고리의 다른 글

object 마지막 게임 캐릭터 정보 예제  (0) 2023.07.17
Java.io.file - multi + object  (0) 2023.07.17
Java.io.file - single  (0) 2023.07.14
Java.util.collection - Stack, Queue  (0) 2023.07.14
Java.util.collection - Map  (0) 2023.07.14