[英]OutputStream appending file type
我正在嘗試從服務器下載文件,服務器向我發送一個沒有擴展名的八位字節流,但是它在http頭中發送擴展名(名稱為fileType)。
我要做的是讀取http標頭,然后將文件類型附加到下載的文件。
以下代碼工作正常,如果我手動添加擴展名,文件是正常的:
@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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.