티스토리 뷰
JAVA Carriage Return(CR), Line Feed(LF)
Carriage Return(CR), Line Feed(LF)에 대한 별도의 클래스는 없는 것 같았습니다. C나 펄과 달리, 자바는 줄바꿈 문자를 좀 융통성 없이 처리하더군요,
윈도우에서 자바를 사용할 때를 기준으로 설명합니다. 윈도우에서는 도스(DOS) 텍스트를 사용하기에, 줄바꿈이 "0D 0A"로 즉 "CR-LF"로 출력되어야 합니다. 리눅스/유닉스에서는 "0A" 즉 "LF"가 되어야 합니다.
public class Foo {
public static void main(String args[]) {
System.out.println("줄바꿈 문자 자동 추가(도스)"); // 자동으로 행갈이 문자 종류 판단
System.out.print("줄바꿈 문자 없음");
System.out.println(); // 줄바꿈만 하기; 자동으로 행갈이 문자 종류 판단
System.out.print("줄바꿈 문자 직접 넣기 (유닉스)\n");
System.out.print("줄바꿈 문자 직접 넣기 (도스)\r\n");
}
}
println 으로 출력하면, 현재 운영체제의 종류에 따라 줄바꿈이 자동으로 정해집니다. 윈도우에서 실행하면 도스형 줄바꿈이 나옵니다. 리눅스에서 실행하면 유닉스 스타일로 줄바꿈이 됩니다.
그런데 \n 이런 이스케이프 문자를 직접 사용하여 줄바꿈을 하면 문제가 생깁니다. C나 펄은 \n 을 운영체제에 맞게 변환하지만, 자바는 그렇지 않고 항상 LF만 출력하여 유닉스 텍스트가 됩니다. 그래서 텍스트 파일의 행끝의 종류가 뒤섞이는 문제가 있습니다. (물론 리눅스에서라면 괜찮을 것입니다. 윈도우는 도스 텍스트를 사용하기에 윈도우에서만 이런 문제가 생깁니다.)
이때는 \r\n 이런 식으로 해주면, 도스 텍스트로 출력됩니다. 그렇지만 \r\n 이런 식으로 줄바꿈하면 윈도우에서는 괜찮지만 리눅스에서는 또 문제가 생길 것입니다. (리눅스의 텍스트는 줄바꿈에 \r 즉 CR이 쓰이지 않기에...)
'자바 > JAVA 입문' 카테고리의 다른 글
[Java Tips] LineNumberReader를 이용해 손쉽게 Line Number 추출하기 (0) | 2011.10.11 |
---|---|
[java]HashMap (1) | 2011.10.11 |
자바 난수 발생 (0) | 2011.10.11 |
java.lang.UnsupportedOperationException: This parser does not support specification "null" version "null" (0) | 2011.10.11 |
자바 오늘의 날짜 구하기 (4) | 2011.10.11 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- sax vs dom
- eclipse svn
- jason maraz
- java파일복사
- Mysql명령어
- lol 서포터
- java 객체
- javascript강의
- dom vs sax
- 이클립스 단축키
- 자바스크립트강의
- jason marz im yours
- 체크박스
- 갈릴레오 svn
- eclipse 단축키
- 문자열자르기
- Marry You
- This Android SDK requires An...e ADT to the latest version
- java파일삭제
- 타루 예뻐할께
- java 인스턴스
- 자바 객체
- 불독맨션 좋아요
- 펌방지해제
- bruno mars marry you
- marry you 프로포즈
- Split
- MySQL
- 자바정의
- 스크린세이버
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함