gpt4 book ai didi

java - OutputStream 附加文件类型

转载 作者:行者123 更新时间:2023-12-02 06:51:49 25 4
gpt4 key购买 nike

我正在尝试从服务器下载文件,服务器向我发送一个没有扩展名的八位字节流,但它在 http header 中发送扩展名(名称为 fileType)。

我想做的是读取该http header ,然后将文件类型附加到下载的文件中。

以下代码工作正常,如果我手动添加扩展名,文件就可以了:

@Override
protected String doInBackground(String... params) {
String fileUrl = params[0];
String pathToSave = params[1];
String appId = params[2];
URL url;
try {
url = new URL(fileUrl);
URLConnection connection = url.openConnection();
connection.connect();
int lenghtOfFile = connection.getContentLength();
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(pathToSave);
byte data[] = new byte[1024];

long total = 0;
int count = 0;
while ((count = input.read(data)) != -1) {
total += count;
output.write(data, 0, count);
}
// String temp = connection.getHeaderField("fileType");
// byte [] extension = connection.getHeaderField("fileType").getBytes();
// output.write(extension, 0, extension.length);
output.flush();
output.close();
input.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

通过调试我看到 temp 是“jpg”,那么为什么这 3 行不起作用?

//          String temp = connection.getHeaderField("fileType");
// byte [] extension = connection.getHeaderField("fileType").getBytes();
// output.write(extension, 0, extension.length);

感谢您的阅读

最佳答案

为什么要将文件类型附加到文件内容?

如果您想将其附加到文件名,那么您需要将其附加到pathToSave,而不是outputstream:

....
url = new URL(fileUrl);
URLConnection connection = url.openConnection();
connection.connect();
String temp = connection.getHeaderField("fileType");
pathToSave = pathToSave + "." + temp;

关于java - OutputStream 附加文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17943314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com