簡體   English   中英

OutputStream附加文件類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM