자바 random access 질문입니다..

fx2000의 이미지

Random Access File로 파일에 출력을 하고 있습니다..

근데...writeChar메서드로 아무리 \n과 \r을 써놔도..

줄이 안 바뀌네요..에궁..

리눅스에서는 제대로 보이는데...

윈도우에서 열면...개행문자와 캐리지 리턴 문자가 있어야 할 곳에

이상한 문자들만 있습니다..

윈도우에서 제대로 보게 할려면 어케 해야 되는지

가르쳐 주시면 고맙겠습니다..

그럼...꾸벅..

asteroid의 이미지

플랫폼마다 개행문자(line separator)가 달라서 그런것 같습니다.

윈도우에선 13(CR) 10(LF) 순서를 개행문자로 사용하고,

유닉스는 10(LF)를 개행문자로 사용합니다.

출력파일을 다루는 플랫폼에 맞게 출력해주시면 될것 같습니다.

fx2000의 이미지

순서맞춰서...

해줬는데...

안 바뀌었거든요....

근데..이상한건..

메모장으로 보면 한줄이고..

워드패드나 다른 워드 프로세서로 보면...말짱하게 나오네요..-_-;;

자바에서는 문자를 2 바이트 씩(유니코드던가..) 쓰자나요..

아마 메모장에서 이런 포멧을 제대로 해석 못하나 봅니다..--a..

세상은 견고하고 삶은 유희가 아니다...

asteroid의 이미지

DataOutput.writeChars 메소드는 레퍼런스에 다음과 같은 설명이 있습니다.

Quote:
Writes a char value, which is comprised of two bytes, to the output stream. The byte values to be written, in the order shown, are:

(byte)(0xff & (v >> 8))
(byte)(0xff & v)

The bytes written by this method may be read by the readChar method of interface DataInput , which will then return a char equal to (char)v.

당연하게, writeChar 메소드로 13등을 출력하게되면, 2바이트로 기록이되겠지요.

이런 경우엔, 바이트 단위로 기록하는 것이 맞을것 같습니다.

DataOutput.write 계열 메소드를 사용해보세요.

(물론 출력하고자하는 데이터가 byte가 아니라면 적절히 바꿔줘야겠죠?)

그리고, Windows NT 이후의 노트패드에서는 유니코드를 지원하는 것으로

알고있습니다. 대신 파일 첫부분에 0xFE 0xFF등을 기록해서 유니코드를

사용한 문서임을 표시해 두는것 같네요.

아래의 간단한 코드가 도움이 되었으면 좋겠네요.

import java.io.RandomAccessFile;
public class TestRAF {
    public static void main(String[] args) throws Exception {
        RandomAccessFile raf = new RandomAccessFile("raf-test", "rw");
        raf.write("strings".getBytes());
        raf.writeByte(13);
        raf.writeByte(10);
        raf.write("next line".getBytes());
    }
}
fx2000의 이미지

말끔하게 해결했습니다...

속이 다 후련하네요

^^..

다시 한 번 감사합니다..

세상은 견고하고 삶은 유희가 아니다...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.