현재 Java 게임을 작성 중이며 일부 데이터를 파일에 저장해야합니다. 나는 파일을 읽고 쓰는 데 DataInputStream
과 DataOutputStream
을 사용하고 있습니다. 그러나 작성해야하는 대부분의 데이터는 기본 유형이지만 일부 열거 형은 파일에 저장해야합니다. DataStream을 사용하여 열거 형을 읽고 쓸 수있는 방법이 있습니까?DataOutputStream을 사용하여 파일에 열거 (Enum) 쓰기
1
A
답변
1
단순히 writeUTF(String str) 방법을 사용하십시오. 그리고 enum 자체는 작성하지 말고 문자열 표현을 작성하십시오. 열거 형 객체의 name()
메서드를 호출하는 등의 작업을 수행 할 수 있습니다.
물론,이 문자열을 열거 형 상수로 다시 변환하려면 "읽기"부분에 약간의 코딩이 필요합니다. 그러나 그것은 당신이 당신의 에너지를 소비하고 싶은 곳입니다.
추악한 진실은 : Java enums와 serialization이 실제로 불쾌한 주제입니다. 주의를 기울이지 않으면 매우 열심히 버전 관리 충돌을 소개합니다.
의미 : 대부분의 사람들이 사용하는 "정상적인"방법 : "일반적인"개체 직렬화; 바이트 스트림을 만든다. 그 바이트를 DataOutputStream에 기입합니다. 하지만이 작업을 수행하려면 열거 형 클래스 파일을 양쪽 끝에서 일치시켜야합니다. 그렇지 않은 경우, Java 직렬화 프레임 워크에서 예외가 발생합니다. 처리 할 하드 일 수 있습니다.
짧은 이야기이므로 enum을 직접 직렬화하지 말고 문자열을 보내십시오.
관련 문제
- 1. DataOutputStream을 사용하여 int에 파일 쓰기
- 2. PrintWriter 및 DataOutputStream을 사용하여 Java에서 동일한 파일에 쓰기
- 3. Java에서 DataOutputStream을 사용하여 파일 보내기
- 4. fstream을 사용하여 파일에 쓰기
- 5. 자바를 사용하여 파일에 쓰기
- 6. 반향을 사용하여 파일에 쓰기
- 7. java.nio를 사용하여 파일에 쓰기
- 8. ofstream을 사용하여 파일에 쓰기
- 9. 바흐를 사용하여 파일에 쓰기
- 10. "enum"에 열거 형을 매핑
- 11. 이맥스 열거 형 들여 쓰기
- 12. DataOutputStream을 플러시하지 않습니다.
- 13. jQuery를 사용하여 서버의 파일에 쓰기?
- 14. GetSaveFileName을 사용하여 txt 파일에 쓰기
- 15. awk를 사용하여 여러 파일에 쓰기
- 16. FileWriter를 사용하여 Java로 파일에 쓰기
- 17. SL4A Python을 사용하여 파일에 쓰기
- 18. 하나의 함수를 사용하여 파일에 쓰기
- 19. 우분투 gedit을 사용하여 파일에 쓰기
- 20. macOS에서 JavaScript를 사용하여 파일에 쓰기
- 21. 오라클을 사용하여 같은 파일에 쓰기
- 22. Firefox에서 Javascript를 사용하여 파일에 쓰기?
- 23. JSP를 사용하여 CSV 파일에 쓰기
- 24. 표준 라이브러리를 사용하여 파일에 쓰기
- 25. VB - StreamWriter를 사용하여 파일에 쓰기
- 26. 중복없이 변수를 사용하여 파일에 쓰기
- 27. ASP를 사용하여 텍스트 파일에 쓰기
- 28. Node-ffi를 사용하여 파일에 쓰기
- 29. Android, 상속을 사용하여 파일에 쓰기
- 30. PowerShell을 사용하여 파일에 탭 쓰기
"문자열 표현"당신이'name()'또는'toString()'을 의미하는지 명확히하십시오. –
지출하고자하는 시간에 따라 둘 다 작동해야합니다. 하지만 네, name()이 더 잘 작동합니다. 그래서 나는 나의 대답을 업데이트했다. – GhostCat