在读取here并创建一个大型对象以使用JsonWriter和JsonReader发送和接收时。我想跟踪发送的总字节数。

最佳答案

JsonWriterJsonReader中没有任何内容可以为您提供。

确实,唯一的方法是包装/扩展当前传递给Reader / WriterJsonReaderJsonWriter,并跟踪正在读/写/写出的字节。

编辑添加:例如,您可以执行以下操作:

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是一个接口,那会干净很多,但是……嗯,你能做什么。如果您知道只使用一种类型的Writer(例如,BufferedWriter),则可以扩展它,覆盖所有方法并在this而不是专用的通过构造函数传入的实例。

关于java - 我如何查看从GSON JsonReader收到了多少字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14866722/

10-10 08:11