我在编写检索到的ObjectInputStream
对象的字节时遇到问题。我需要这个能够以格式访问该文件。
这是我目前使用的代码:
public ObjectInputStream serve(String fileName) throws IOException,
ClassNotFoundException {
GcsFilename gcsFileName = getFileName(fileName, defaultbucketName);
int fileSize = (int) gcsService.getMetadata(gcsFileName).getLength();
GcsInputChannel readChannel = null;
readChannel = gcsService.openPrefetchingReadChannel(gcsFileName, 0,
fileSize);
try (ObjectInputStream oin = new ObjectInputStream(
Channels.newInputStream(readChannel))) {
return oin;
}
}
当我运行代码时,它在ObjectInputStream oin = new ObjectInputStream(Channels.newInputStream(readChannel))
行失败并出现错误,例如:
java.io.StreamCorruptedException: invalid stream header: FFD8FFE0
但是当我将流发送到HTTPRESPONSE
对象时没有问题。
答案 0 :(得分:2)
您可能正在尝试访问尚未由ObjectOutputStream
撰写的文件,该文件包含特殊标题。
因此,要访问该文件,您应该使用Google云端存储编写API或像这样的虚拟Java程序重写其内容:
FileOutputStream fos = new FileOutputStream("test.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject("your content");
oos.close();
稍后,将test.txt
上传到您的GCS广告管理系统。