在读取here并创建一个大型对象以使用JsonWriter和JsonReader发送和接收时。我想跟踪发送的总字节数。
最佳答案
JsonWriter
或JsonReader
中没有任何内容可以为您提供。
确实,唯一的方法是包装/扩展当前传递给Reader
/ Writer
的JsonReader
或JsonWriter
,并跟踪正在读/写/写出的字节。
编辑添加:例如,您可以执行以下操作:
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/