Это простой метод, который просто копирует содержимое входного потока в выходной поток:
/**
* Copy the content of the input stream into the output stream, using a
* temporary byte array buffer whose size is defined by
* {@link #IO_BUFFER_SIZE}.
*
* @param in
* The input stream to copy from.
* @param out
* The output stream to copy to.
*
* @throws java.io.IOException
* If any error occurs during the copy.
*/
public static void copy(InputStream in, OutputStream out)
throws IOException {
byte[] b = new byte[IO_BUFFER_SIZE];
int read;
while ((read = in.read(b)) != -1) {
out.write(b, 0, read);
}
}
Это взято из приложения, которое я сделал недавно: http://code.google.com/p/meneameandroid/source/browse/trunk/src/com/dcg/util/IOUtilities.java
И чтобы убедиться, что каталог существует там, где вы хотите записать / прочитать ваши данные, я использовал нечто вроде этого:
/**
* Prepares the SDCard with all we need
*/
private void prepareSDCard() {
// Create app dir in SDCard if possible
File path = new File("/sdcard/MyAppDirectory/");
if(! path.isDirectory()) {
if ( path.mkdirs() )
{
Log.d(TAG,"Directory created: /sdcard/MyAppDirectory");
}
else
{
Log.w(TAG,"Failed to create directory: /sdcard/MyAppDirectory");
}
}
}
Разрешение на запись / чтение с SD-карты:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Отредактировано: ссылки обновлены