我如何用方线序列化
How do I serialize with square-wire
尝试序列化结果时出现 NullPointerException:
java.lang.NullPointerException: 尝试在空对象引用
上调用虚拟方法'byte[] com.squareup.wire.ProtoAdapter.encode(java.lang.Object)'
尝试在 ObjectOutputStream 之前使用 BufferedOutputStream
尝试搜索相同的错误
用于序列化的代码:
'Result' 是使用 wire-compiler 自动生成的 class。
result.toString() returns 一个字符串(所以实际上不是空的)
如果要将整个 'result' 保存为纯文本,则会生成一个 5MB 的文件。
public static void serialize(File fullPath, Result result){
try {
// System.out.println(result.toString());
FileOutputStream fileOut = new FileOutputStream(fullPath);
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(result); // NullPointerException mentioned above
out.close();
fileOut.close();
} catch (IOException i) {
i.printStackTrace();
}
}
Retrofit 实例:
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(1, TimeUnit.MINUTES)
.readTimeout(1, TimeUnit.MINUTES)
.retryOnConnectionFailure(true)
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(client)
.addConverterFactory(ProtoConverterFactory.createWithRegistry(ExtensionRegistry.newInstance()))
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
SchemaAPI schemaAPI = retrofit.create(SchemaAPI.class);
This are the contents of the file at fullpath: ’
which doesnt seem to be the entire result.
ArrayList<ITEMS> itemsList = new ArrayList<>();
FileOutputStream fileOut = new FileOutputStream(schema);
ObjectOutputStream out = new ObjectOutputStream(fileOut);
for(Result.ITEMS item:result.items){
itemsList.add(item.newBuilder().build());
}
out.writeObject(itemsList);
out.close();
fileOut.close();
尝试序列化结果时出现 NullPointerException: java.lang.NullPointerException: 尝试在空对象引用
上调用虚拟方法'byte[] com.squareup.wire.ProtoAdapter.encode(java.lang.Object)'尝试在 ObjectOutputStream 之前使用 BufferedOutputStream
尝试搜索相同的错误
用于序列化的代码:
'Result' 是使用 wire-compiler 自动生成的 class。
result.toString() returns 一个字符串(所以实际上不是空的)
如果要将整个 'result' 保存为纯文本,则会生成一个 5MB 的文件。
public static void serialize(File fullPath, Result result){
try {
// System.out.println(result.toString());
FileOutputStream fileOut = new FileOutputStream(fullPath);
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(result); // NullPointerException mentioned above
out.close();
fileOut.close();
} catch (IOException i) {
i.printStackTrace();
}
}
Retrofit 实例:
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(1, TimeUnit.MINUTES)
.readTimeout(1, TimeUnit.MINUTES)
.retryOnConnectionFailure(true)
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(client)
.addConverterFactory(ProtoConverterFactory.createWithRegistry(ExtensionRegistry.newInstance()))
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
SchemaAPI schemaAPI = retrofit.create(SchemaAPI.class);
This are the contents of the file at fullpath: ’
which doesnt seem to be the entire result.
ArrayList<ITEMS> itemsList = new ArrayList<>();
FileOutputStream fileOut = new FileOutputStream(schema);
ObjectOutputStream out = new ObjectOutputStream(fileOut);
for(Result.ITEMS item:result.items){
itemsList.add(item.newBuilder().build());
}
out.writeObject(itemsList);
out.close();
fileOut.close();