>  Q&A  >  본문

utf-8 - Java는 FileWriter를 사용하여 int 유형 데이터를 파일에 씁니다. 파일 데이터가 잘못되었습니까?

(제 제목이 너무 모호한 건 알지만 어떻게 설명해야 할지 모르겠어서요)

문제의 원인은 Android 앱이 Java로 개발되었다는 것입니다. 기능 중 하나는 FileWriter를 사용하여 int 데이터를 데이터 파일에 쓰는 것입니다. 이 데이터 파일은 File의 createNewFile(String filename) 메소드를 사용하여 생성되며, 파일에 기록되는 데이터는 모두 int 유형입니다. (FileWriter의 write(int) 메소드)

후속 처리의 편의를 위해 데이터 파일의 각 데이터 세그먼트는 4(int)-1(각 데이터 세그먼트 앞에 기록됨)로 나누어집니다. 논리적으로 말하면 이 파일의 처음 16바이트는 ff여야 합니다. 하지만 실제 데이터 파일은 다음과 같습니다.

UTF8 인코딩 오류와 같은 익숙한 문제가 보이지만, write를 사용하여 int를 작성하고 파일에 String을 쓰지 않는 경우 인코딩 오류가 발생하는 이유를 잘 이해하지 못합니다.

그래서 여러분께 묻고 싶습니다. 이 상황(순수 int 데이터 파일)에서는 어떻게 해야 하나요? 데이터를 읽는 다른 방법이 있나요?

미리 감사드립니다!

phpcn_u1582phpcn_u15822713일 전562

모든 응답(1)나는 대답할 것이다

  • 仅有的幸福

    仅有的幸福2017-05-17 10:00:09

    FileWrite의 Write(int) 메서드는 여기의 int가 실제로 char 문자이기 때문에 순수 int 파일을 쓸 수 없습니다. int 데이터가 유니코드 코드 테이블에서 해당 char 값을 찾을 수 없으면 잘못된 문자가 나타납니다. toString 메소드를 제공하여 문자열로 변환할 수 있습니다
    실제 int 데이터를 작성하려는 경우

    으아아아

    회신하다
    0
  • 취소회신하다