Androidはassetsフォルダのデータを取得し、SDカードの例に書き込む
1611 ワード
この例では、Androidがassetsフォルダのデータを取得してSDカードに書き込むことを主に実現しています.このプログラムは、assetsフォルダのデータベースを最初に読み出し、SDメモリカードに書き込む手順を主に実現しています.
完全なサンプルコードは次のとおりです.
完全なサンプルコードは次のとおりです.
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.content.Context;
/* assets SD
* @author Dave */
public class WriteToSD {
private Context context;
String filePath = android.os.Environment.getExternalStorageDirectory()+"/weather";
public WriteToSD(Context context){
this.context = context;
if(!isExist()){
write();
}
}
private void write(){
InputStream inputStream;
try {
inputStream = context.getResources().getAssets().open("addressId.db");
File file = new File(filePath);
if(!file.exists()){
file.mkdirs();
}
FileOutputStream fileOutputStream = new FileOutputStream(filePath + "/database.db");
byte[] buffer = new byte[512];
int count = 0;
while((count = inputStream.read(buffer)) > 0){
fileOutputStream.write(buffer, 0 ,count);
}
fileOutputStream.flush();
fileOutputStream.close();
inputStream.close();
System.out.println("success");
} catch (IOException e) {
e.printStackTrace();
}
}
private boolean isExist(){
File file = new File(filePath + "/database.db");
if(file.exists()){
return true;
}else{
return false;
}
}
}