diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java index 9d4eb6c42f..b06669f8f7 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java @@ -11,12 +11,10 @@ import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.util.Log; - import org.dolphinemu.dolphinemu.gamelist.GameListActivity; import org.dolphinemu.dolphinemu.settings.UserPreferences; import java.io.*; -import java.nio.channels.FileChannel; /** * The main activity of this emulator front-end. @@ -25,22 +23,16 @@ public final class DolphinEmulator extends Activity { private void CopyAsset(String asset, String output) { + InputStream in = null; + OutputStream out = null; + try { - // Get input file channel. - FileInputStream inStream = getAssets().openFd(asset).createInputStream(); - FileChannel in = inStream.getChannel(); - - // Get output file channel. - FileOutputStream outStream = new FileOutputStream(output); - FileChannel out = outStream.getChannel(); - - // Copy over - in.transferTo(0, in.size(), out); - - // Clean-up - inStream.close(); - outStream.close(); + in = getAssets().open(asset); + out = new FileOutputStream(output); + copyFile(in, out); + in.close(); + out.close(); } catch (IOException e) { @@ -48,6 +40,17 @@ public final class DolphinEmulator extends Activity } } + private void copyFile(InputStream in, OutputStream out) throws IOException + { + byte[] buffer = new byte[1024]; + int read; + + while ((read = in.read(buffer)) != -1) + { + out.write(buffer, 0, read); + } + } + @Override public void onCreate(Bundle savedInstanceState) {