안드로이드 게임 (andEngine 사용)에서 TMXtiled 맵을 개체로 저장하려고하고로드 시간을 절약하기 위해 나중에 호출합니다. 나는 SD 카드에서 파일을 가져올 수 있었지만 SD 카드에서 읽으려는 데 문제가 있습니다. 그런 다음저장된 개체가 sd 카드에서 읽히지 않습니다
File root = Environment.getExternalStorageDirectory();
FileOutputStream fos = new FileOutputStream(root + "/fileTest");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(tmxLoader.loadFromAsset(mContext, "tmx/test.tmx"));
oos.close();
내가 SD 카드에서 파일 읽기 위해 이것을 사용 :이 내가 파일을 작성하는 데 사용하는 코드입니다 널 포인터 예외,
FileInputStream in = new FileInputStream(root + "/fileTest");
ObjectInputStream os = new ObjectInputStream(in);
mTMXTiledMap = (TMXTiledMap) os.readObject();
os.close();
내가 점점 계속 오류를하는 그 파일이 읽히지 않는다고 믿게 만들었습니다. 안드로이드에서 사용하기 전에 자바에서이 메서드를 테스트했지만 작동하지만 문자열을 사용하고있었습니다. 위의 코드에 문제가 있습니까? 또한 이러한 대형 객체를 저장하는 더 좋은 방법이 있습니까? 내가 알아챈 또 다른 사실은 SD 카드의 파일이 약 3KB 였지만, TiledMap이 DDMS를 사용하여 훨씬 많은 공간을 차지한다는 것을 보았습니다. 그래서 파일이 완전히 쓰여지지 않았다는 것을 의미합니까?
내가 모두 TMX로 테스트를 사용하기 때문에 위의 코드는 조금 비트 혼란 이름과 SD 카드에있는 파일의 이름. SD 카드에는 파일 확장자가 없습니다. 위 코드를 더 명확하게 편집 할 것입니다. – rioneye
쓰기와 읽기 모두에서 확장 기능을 제공해야합니다. –
일반 파일로 남겨 둘 수 없습니다. serializable을 구현 한 클래스에서 객체를 만든 경우 파일 이름이 중요하지 않다고 생각했습니다. – rioneye