TCP 소켓을 통해 일부 데이터베이스 데이터를 전송하려고합니다. 데이터는 JSON으로 포맷됩니다.Java 한계 (json 형식)
데이터베이스 크기가 커질 수 있으므로 String 객체의 최대 크기가 JSON 형식으로 전체 데이터를 저장하는 데 충분하지 않을까 걱정됩니다.
DataOutput 함수 writeUTF()
을 사용하여 데이터를 전송하는 중에 이미 문제가 발생했습니다.
어떻게해야합니까? 어쩌면 데이터베이스 행을 CSV로 변환하고 라인별로 인터넷을 통해 전송할 수 있습니까? 또는 String 한계에 대해 걱정할 필요가 없으며 String 바이트를 가져 와서 소켓을 통해 전송하고 대상 바이트에서 String을 다시 작성하여 writeUTF()
문제를 해결할 필요가 없습니까?
당신은'{ "files": [ "name": "name_of_fie", "path": "파일 경로", "last_change": "timestamp", "parent_dir" : "parent folder"]}'나는 아무런 문제가 없으며 단지 소켓을 통해 바이트를 전송할 것입니까? – androidGR
@androidGR : 예. 순진한 방법으로하면 메모리 측면에서 약간 비효율적입니다 (전체 텍스트에 대해 동시에 문자열 표현 * 및 * 메모리로 이진 인코딩 된 표현으로 끝날 것입니다). 쉽게 할 수 있습니다. 메모리가 문제가된다면, 한 번에 청크를 전송하고 ('writeUTF'를 사용하여 잠재적으로 할 수있는) 청크를 다른 끝에서'StringBuilder'를 사용하여 재구성 할 수 있습니다. –