코딩 노트
java.file.string 본문
문자열 파일 입출력
- 문자열은 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 |