Computer

2015년 11월 10일 개발일지

TOYOBA 2015. 11. 10. 19:05

1. cocos2d-x 의 getFileData이야기.

getFileData는 FileUtils클래스에 있는 method로, file에 있는 Data를 읽어오는데 유용하다. 

그러나 cocos2d-x 3.0에서 deprecated되어서 대체하는 method로 getDataFromFile라는 method를 이용할 수 있게 해두었다.


나는 이 method를 통해서 json file을 parsing하고자 했으나 file이 제대로 열리지 않는 문제가 발생했다.

처음에는 parsing file상의 문제가 있는건가 싶어서 stream으로 입력해보고 여러가지 방법을 사용해 보았지만 제대로 된 파일이 넘어오지 않았고, string data를 제대로 받아오는지 확인해봤더니 깨진 값이 나타난 것. 

뭔가 이상해서 확인해봤더니 getDataFromFile내부를 확인해 보니 답을 알 수 있었다.

getDataFromFile method에서는 FileUtils의 내부 method중 하나인 getData함수를 사용하는데, 이게 getDataFromFile의 경우 자동적으로 false로 들어가서 분기를 타는 것이었다. 

소스도 첨부해서 더 써보면 좋지만 소스 첨부하는법을 몰라서 ^^; 좀 나중에 다시 첨부해야겠다.

내가 원하는건 json file로 써져있는 string 이 필요했는데...

그것을 위해서 FileUtils에서는 다른 method를 제공하고있다.

getStringFromFile이라는 method를 사용하면 file inputmode를 binary모드로 읽어주어 정상적으로 처리할 수 있도록 도와준다. 아까전 까지 내가 시도했던 것은 file 자체를 text data로 그냥 읽어버려서 무언가 많이 깨지는 글자가 나오거나 제대로 읽어 올 수 없었던 것이었다.

(물론 이 getStringFromFile은 getData함수를 true로 부른다. ^^;)


제대로 삽질한 느낌이지만 차근차근 따라가서 생각하다보면 답을 찾을수 있다는 것을 얻은 기회였다. ^^ㅎㅎ