0
我試圖從服務器下載文件,服務器向我發送一個沒有擴展名的八位字節流,但是它在http頭文件(名稱爲fileType)中發送擴展名。OutputStream追加文件類型
我想要做的是讀取該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;
}
通過調試我看到溫度是「JPG」,那麼爲什麼不把這些3條線工作?
// String temp = connection.getHeaderField("fileType");
// byte [] extension = connection.getHeaderField("fileType").getBytes();
// output.write(extension, 0, extension.length);
感謝您閱讀
有時我們錯過了明顯的,謝謝;) – HeWhoCodes
@Crockes別客氣。只需要注意,temp可能是'null',所以你可能想通過添加if語句來檢查你的代碼是否爲null –
再次感謝你,upvoted :) – HeWhoCodes