마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안녕하세요,. 파일에 개행 넣는 법 좀 알려주십시오.

0 추천
  public void fw(String str1) {
 try {
  File path1 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
  File f = new File(path1,"gps.txt");    
  FileWriter writer = new FileWriter(f,true);
  PrintWriter out = new PrintWriter(writer);
  out.println(str1);
  out.close();
//  Toast.makeText(context,"저장됨", 0).show();
  } catch (IOException e) {
//  Toast.makeText(context,"에러", 0).show();
  }
  }

사용 fw('\r'); 

안녕하세요.

문자열을 저장하면

 

가나다

가나다

가나다

가나다

 

이렇게 깔끔하게 개행이 되지 않습니다.

 

가나다

가나다 ♪■

가나다 ♪■

 

이런식으로 나옵니다.

 

개행문자를 \r\n 도 안되고, \n 도 안되고 \r 도 안되네요.

 

 

깔끔하게 나올 방법이 있을까요?

익명사용자. (380 포인트) 님이 2015년 7월 26일 질문

2개의 답변

0 추천
\r\n 도 안되고, \n 도 안되고 \r 도 안되는 것은 좀이상하내요...

읽어보는 시스템에서의 문제일 확률이 높은데..

인코딩이 문제면 글짜 전체가 문제가 생길것같구요.. 훔

일단 확인방법은 정말 파일이 개행문자에 이상이 있게 저장이 되었는지 부터 확인해보셔야 할 것 같습니다.

hex editor나 hex viewer 등을 통해서 저장된 파일을 열어 보시지요..

문자열의 마지막이 정말 문제인지 확인해보시면 됩니다. \r -  0x0A , \n - 0x0D

즉 \r\n은 dos/window 상태의 라인끝입니다. 유닉스/리눅스에서는 \n만 으로도 개행처리가 됩니다.  핵사로 봤을때 저런식으로 문자열의 마지막을 장식하고 있다면 저걸 정상적으로 못읽는 것은 정상적으로 못읽어 내는 시스템에 문제로 보입니다.
컴러기 (22,230 포인트) 님이 2015년 7월 27일 답변
0 추천

그냥 붙이지 마세요..  println 자체가 라인단위 출력이라.  메소드에서 알아서 붙입니다. 

아스키가 나오는건 '\r' 을 String으로 캐스팅하면서 ♪■   같은 것으로 변경했기 때문에 그렇게 나오는 것이구요. 

굳이 붙이고 싶으시면 입력을 byte[] 형식으로 받고, print를 쓰셔야 합니다. 

익명사용자 님이 2015년 7월 27일 답변
...