Revision a09587c7
| F-Droid/src/org/fdroid/fdroid/Utils.java | ||
|---|---|---|
| 48 | 48 |
import java.io.BufferedInputStream; |
| 49 | 49 |
import java.io.Closeable; |
| 50 | 50 |
import java.io.File; |
| 51 |
import java.io.FileDescriptor; |
|
| 51 | 52 |
import java.io.FileInputStream; |
| 52 | 53 |
import java.io.FileOutputStream; |
| 53 | 54 |
import java.io.IOException; |
| ... | ... | |
| 162 | 163 |
} |
| 163 | 164 |
|
| 164 | 165 |
public static boolean copy(File inFile, File outFile) {
|
| 166 |
InputStream input = null; |
|
| 167 |
OutputStream output = null; |
|
| 165 | 168 |
try {
|
| 166 |
InputStream input = new FileInputStream(inFile);
|
|
| 167 |
OutputStream output = new FileOutputStream(outFile);
|
|
| 169 |
input = new FileInputStream(inFile);
|
|
| 170 |
output = new FileOutputStream(outFile); |
|
| 168 | 171 |
Utils.copy(input, output); |
| 169 |
output.close(); |
|
| 170 |
input.close(); |
|
| 171 | 172 |
return true; |
| 172 | 173 |
} catch (IOException e) {
|
| 173 | 174 |
Log.e(TAG, "I/O error when copying a file", e); |
| 174 | 175 |
return false; |
| 176 |
} finally {
|
|
| 177 |
closeQuietly(output); |
|
| 178 |
closeQuietly(input); |
|
| 175 | 179 |
} |
| 176 | 180 |
} |
| 177 | 181 |
|
| F-Droid/src/org/fdroid/fdroid/net/AsyncDownloaderFromAndroid.java | ||
|---|---|---|
| 10 | 10 |
import android.net.Uri; |
| 11 | 11 |
import android.os.Build; |
| 12 | 12 |
import android.os.ParcelFileDescriptor; |
| 13 |
import android.text.TextUtils; |
|
| 14 |
import android.util.Log; |
|
| 15 |
|
|
| 16 |
import org.fdroid.fdroid.Utils; |
|
| 13 | 17 |
|
| 14 | 18 |
import java.io.File; |
| 15 | 19 |
import java.io.FileDescriptor; |
| ... | ... | |
| 49 | 53 |
this.listener = listener; |
| 50 | 54 |
this.localFile = localFile; |
| 51 | 55 |
|
| 52 |
if (downloadTitle == null || downloadTitle.trim().length() == 0) {
|
|
| 56 |
if (TextUtils.isEmpty(downloadTitle)) {
|
|
| 53 | 57 |
this.downloadTitle = remoteAddress; |
| 54 | 58 |
} |
| 55 | 59 |
|
| ... | ... | |
| 97 | 101 |
* @throws IOException |
| 98 | 102 |
*/ |
| 99 | 103 |
private void copyFile(FileDescriptor inputFile, File outputFile) throws IOException {
|
| 100 |
InputStream is = new FileInputStream(inputFile); |
|
| 101 |
OutputStream os = new FileOutputStream(outputFile); |
|
| 102 |
byte[] buffer = new byte[1024]; |
|
| 103 |
int count = 0; |
|
| 104 |
|
|
| 104 |
InputStream input = null; |
|
| 105 |
OutputStream output = null; |
|
| 105 | 106 |
try {
|
| 106 |
while ((count = is.read(buffer, 0, buffer.length)) > 0) {
|
|
| 107 |
os.write(buffer, 0, count);
|
|
| 108 |
}
|
|
| 107 |
input = new FileInputStream(inputFile);
|
|
| 108 |
output = new FileOutputStream(outputFile);
|
|
| 109 |
Utils.copy(input, output);
|
|
| 109 | 110 |
} finally {
|
| 110 |
os.close();
|
|
| 111 |
is.close();
|
|
| 111 |
Utils.closeQuietly(output);
|
|
| 112 |
Utils.closeQuietly(input);
|
|
| 112 | 113 |
} |
| 113 | 114 |
} |
| 114 | 115 |
|
Also available in: Unified diff