java应用程序引擎/Google云存储输入流错误
我在写入检索到的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
但是,当我将流emmit到HTTPRESPONSE
对象时,没有问题
# 1 楼答案
您可能试图访问一个文件,该文件不是由
ObjectOutputStream
编写的,它包含一个特殊的头因此,要访问该文件,您应该使用谷歌云存储编写API或类似以下的虚拟Java程序重写其内容:
稍后,将
test.txt
上传到您的GCS存储桶