Android下载 - 使用输出流方法

时间:2013-12-12 04:50:43

标签: java android file-io io fileoutputstream

        connection = (HttpURLConnection) url.openConnection();
        connection.connect();

        if (connection.getResponseCode() != HttpURLConnection.HTTP_OK)
            return null;
        // return "Server returned HTTP " + connection.getResponseCode()
        // + " " + connection.getResponseMessage();

        // download the file
        input = connection.getInputStream();
        output = new FileOutputStream(IRConstant.issueFolder(y, m, d, i) + "/" + parms[0].currPage + ".zip");

        Log.d (TAG,"output: " + output);

        byte data[] = new byte[1024];
        int count;
        while ((count = input.read(data)) != -1) {
            output.write(data, 0, count);
        }

上面的代码是我如何实现下载功能,问题是,如果存在一个特定于输出流的文件,如何将其设置为覆盖现有文件?感谢

2 个答案:

答案 0 :(得分:1)

尝试使用其他构造函数:

public FileOutputStream (File file, boolean append) 

构造一个写入文件的新FileOutputStream。如果append为true且文件已存在,则将附加到;否则会被截断。如果文件不存在,将创建该文件。

但我认为默认构造函数已经覆盖现有文件

public FileOutputStream (String path) 

构造一个写入path的新FileOutputStream。如果该文件存在,该文件将被截断,如果该文件不存在,则会被创建。

答案 1 :(得分:1)

在将数据写入文件之前检查它是否存在。如果文件存在则删除它。下面的代码仅对文件有效(不适用于目录)。

File f = new File("path to file");
    if (f.exists()) {
       file.delete();
}