안녕하세요?
제가 만드는 어플은 .xml 과 .dat 파일을 sdcard에서 읽어와야 합니다!
A라는 엑티비티가 실행되기 전에 이 xml, dat파일을 읽어서 A라는 엑티비티에서 사용되는거구요.
문제는 여깁니다..ㅠㅠㅠㅠㅠㅠ
소켓통신을 해서 xml, dat확장자 파일을 전송하고 있는데 도중에 깨지는것같습니다.ㅠ
이미지 전송이나 텍스트 파일같은건 byte 배열에 넣어서 전송했으며 이상이없이 잘 전송되고 잘 읽힙니다만
.dat, .xml파일은 도중에 깨지는것같습니다ㅠ_ㅠ
왜냐하면 전송되었을때 sdcard에 저장된 .dat, .xml 두개의 파일크기가 서버에 저장되있는것과 다르고
더블클릭해서 xml파일을 열어도 깨졌다고 나와서 입니다.
근데 워드패드로 열면 문자가 깨지거나 한건 없더군요.
질문입니다!ㅠ;
1.소켓통신으로는 .dat, .xml 전송이 불가능한가요?(즉, 전송이 되더라도 깨지는 건가요?)
2.소켓통신 할때 바이트 배열말고 다른 배열을 이용하거나 다른 스트림형태를 이용해야하나요?
3.1,2 번 둘다 해도 안된다면 어떤 전송방식을 해야할까요?!
감사합니다ㅠ
꼭 답변부탁드리겠습니다!ㅠㅠ
힌트라도 주세요!ㅠ
옙!답변주셔서 감사합니다ㅋ
거두 절미하고 통신부분에 집중하여 다시 질문을 드리겠습니다!ㅎ
Server 에서 Client인 스마트폰으로 .xml 파일과 .dat 파일을 전송합니다.
Server에서 OutputStream->DataOutputStream 의 스트림을 통해 전달하는데 FileInputStream으로 .dat와 .xml파일을 열고
FileInputStream으로 연 파일을 byte배열에 넣은 후 전송을 합니다.
Client에서는 마찬가지로 InputStream->DataInputStream의 스트림을 통해 전달 받구요.
FileOutputStream으로 전달받은 byte배열을 차례대로 넣고 전송이 종료됩니다.
여기서 문제는 "전송은 됩니다만 파일이 깨짐"의 문제가 발생했습니다.
그러니까..xml파일을 보통 더블클릭하면 인터넷익스플로러가 뜨고 .xml의 구조를 볼 수 있는데,
이렇게 받은 .xml파일을 더블클릭해서 열어보면
XML 페이지를 표시할 수 없습니다.
라면서 에러가 발생했습니다.
그리고 1kb였던 .xml, 120kb였던 .dat 파일의 크기가 4키로바이트 정도씩 불규칙하게 늘어나있습니다..
전송시 뭔가가 더 추가된듯한 현상때문에 .xml, .dat 파일이 제대로 읽히지 않고 제가 원하던 Activity의 동작 어느부분이 동작하지 못하는 현상을 발견하게 된 것이었습니다!ㅠ_ㅠ
.dat파일은 워드패드로 열수 없는 문자였기에 확인할길은 없어보였고
.xml은 더블클릭이 아닌 워드패드로 열어보니 원본과 전혀 이상이 없었습니다.
따라서 제 생각엔 전송도중에 null값이나 쓰레기값들이 들어갔고 그 때문에 제가 원하는 동작이 이루어 지지 않았다고 생각했습니다ㅠ
더 난해하셨는지 모르겠습니다만
구체적으로 설명드리자면 이렇습니다!ㅠ




상당히 난해하네요 -_-;;
SDCard에서 읽어와야 하는데 Socket 통신이라...
벽을 만난 기분이에요 ㅋㅋ
텍스트는 되는데...xml은 안된다라..
xml도 텍스트 파일인건 아시죠?
현재 말씀 하신 상황으로는 어딘가 앞뒤가 맞지 않아요
구체적으로 어떻게 했으며 구체적으로 어떤 결과가 나왔는지를 알려주셔야 할것 같네요