here을 읽고 JsonWriter와 JsonReader를 사용하여 송수신 할 대형 객체를 만드는 동안 어떻게 될까요? 나는 보낸 총 바이트를 추적하고 싶었다.GSON JsonReader에서 얼마나 많은 바이트를 받았는지 알 수 있습니까
답변
JsonWriter
또는 JsonReader
에는 아무것도 들어 있지 않습니다. 정말
JsonReader
/
JsonWriter
에
Reader
또는
Writer
현재 전달하는을 확장하고 바이트를 추적하는 것입니다 할 수있는 유일한 방법입니다.
편집 추가 : 당신이 뭔가 할 수있는 예를 들어 : 당신이 무엇을 할 수 Writer
가 인터페이스하지만 ... MEH 있다면 그것은 많은 청소기 것
class MyWriterWrapper extends Writer {
private Writer realWriter;
private int bytesWritten;
public MyWriterWrapper(Writer realWriter) {
super();
this.realWriter = realWriter;
}
public int getBytesWritten() {
return bytesWritten;
}
@Override
public Writer append(CharSequence csq) throws IOException {
realWriter.append(csq);
bytesWritten += csq.length();
return this;
}
// Implement/Override all other Writer methods the same way
}
을. 한 유형의 Writer
(예 : BufferedWriter
) 유형 만 사용한다면 확장 할 수 있으므로 모든 메소드를 무시하고 this
의 메소드를 생성자를 통해 전달 된 realWriter
인스턴스 대신 다시 호출하십시오.
JsonReader에서받은 바이트 수를 가져 오는 기본 방법은 없습니다. InputStream로부터
읽기 바이트와 (내부 저장 파일
while ((count = inputStream.read(data)) != -1) { total += count; final long downloadedLength = total; final long totalLength = lengthOfData; **// Here you get the size of bytes received** outStream.write(data, 0, count); }
- 닫기
모든 열린 스트림에 기록 : 나는 울부 짖는 언급 약간 까다로운 해킹을 작성했습니다 위에서 생성 된 입출력 스트림)
새로 생성 된 파일
의 입력 스트림 열기InputStream stream = mContext.openFileInput (FILE_NAME);
InputStreamReader inputStreamReader = 새로운 InputStreamReader (스트림);이제
하자 JsonReader가 임시 사용
에 대해 생성 된 파일을 삭제완료 구문 분석 한 후 분석 데이터에 대한이의 InputStream를 사용하는 JsonReader
위한 InputStream (스트림)가InputStream stream = mContext.openFileInput (FILE_NAME);
InputStreamReader inputStreamReader = 새로운 InputStreamReader (스트림);
jsonReader = new JsonReader (inputStreamReader);
parseMyJSON (jsonReader);파일 file = 새 파일 (mContext.getFilesDir(), FILE_NAME);
파일지우다();
도중입니다. 입력 스트림을 일종의 래퍼 (예 : 아파치의 CountingInputStream)로 감싸더라도 JsonReader의 내부 버퍼링으로 인해 결과가 올바르지 않습니다. ~ 300 바이트 길이의 JSON을 실험했습니다. CountingInputStream은 매번 ~ 4kb가 읽혔다 고보고했습니다.
- 1. OS X에서 주어진 프로세스가 프로그래밍 방식으로 얼마나 많은 바이트를 받았는지/보냈는지 확인하십시오.
- 2. Facebook Share 버튼 - 공유자가 얼마나 많은 추천을 받았는지 확인하십시오.
- 3. 얼마나 많은 사용자가 "좋아"하는 것을 알 수 있습니까? [facebook]
- 4. DB2가 얼마나 많은 연결을 가지고 있는지를 어떻게 알 수 있습니까?
- 5. 하나의 AVFrame에 대해 얼마나 많은 AVPackets을 알 수 있습니까?
- 6. 링크에 얼마나 많은 +1이 있는지 어떻게 알 수 있습니까?
- 7. 현재 얼마나 많은 온라인 온라인 게임을 알 수 있습니까?
- 8. 매퍼는 얼마나 많은 매퍼가 실행 중인지 알 수 있습니까?
- 9. 얼마나 많은 시간을 내 Google 스크립트를 실행해야하는지 알 수 있습니까
- 10. DataOutput.writeUTF를 통해 얼마나 많은 바이트가 쓰여 졌는지 알 수 있습니까?
- 11. 얼마나 많은 사람들이 내 Facebook 광고를보고 클릭했는지 알 수 있습니까?
- 12. 얼마나 많은 공간이 MySQL 데이터베이스에 필요한지 알 수 있습니까?
- 13. PHP에서 오늘 얼마나 많은 월요일이 지나간 지 알 수 있습니까?
- 14. 컴퓨터가 얼마나 많은 인수를 따르는 지 알 수 있습니까?
- 15. AS3의 NetStream에서 얼마나 많은 비디오를로드했는지 어떻게 알 수 있습니까?
- 16. Java에서 얼마나 많은 스택이 남아 있는지 어떻게 알 수 있습니까?
- 17. 얼마나 많은 데이터를 스택에 저장할 수 있습니까?
- 18. 얼마나 많은 제한이 있습니까?
- 19. UIView가 얼마나 큰지 언제 알 수 있습니까?
- 20. 한 줄씩 파일을 읽고 얼마나 많은 바이트를 읽었는지 반환하는 방법?
- 21. 스레드가 얼마나 많은 메모리를 사용하는지 알 수있는 방법이 있습니까?
- 22. 얼마나 많은 비트가 하나의 문자를 나타내고 얼마나 많은 비트가 ASCII로 1 바이트를 나타 냅니까?
- 23. 내가가 발생할 얼마나 많은 커밋 알 수 있습니다 후 그것을
- 24. R : 목록에서 얼마나 많은 벡터가 포함되어 있는지 알 수 있습니다.
- 25. couchdb에는 얼마나 많은 문서가 포함될 수 있습니까?
- 26. 입방체의 얼마나 많은 부분을 볼 수 있습니까?
- 27. 얼마나 많은 행 핸들을로드 할 수 있습니까?
- 28. 얼마나 많은 메모리를 할당 할 수 있습니까?
- 29. 안드로이드 앱은 얼마나 많은 알림을받을 수 있습니까?
- 30. 얼마나 많은 젠킨스 집행자가있을 수 있습니까?
이것은 내 생각이었습니다. 이 기능이있는 gson 복제본이 있으면 좋겠다. 내가 멀리까지 가면 하나가 될 것이다. – Erik
이것은 독자가 아니라 작가에게만 적용됩니다. –