需求,将数据库**.db文件复制到 /data/data/包名/files文件中去,作为数据库使用
将a文件内容复制到b文件中去
【知识的简单回顾:将文件I/O流的输入输出流的使用--》copy】
代码如下:
/*
* //path 把address.db这个数据库拷贝到data/data/包名/files/address.db
*/
private void copyDb(String filename) {
//只要你拷贝了一次,我就不要你再拷贝了
try {
//在指定的目录创建了 database.db文件
File file=new File(getFilesDir(), filename);
if(file.exists()&&file.length()>0){
//正常了,不需要拷贝了
Log.i(TAG,"正常了,不需要拷贝了");
}else{
InputStream is=getAssets().open(filename);
FileOutputStream fos=new FileOutputStream(file);
byte[] buffer=new byte[1024];
int len=0;
len=is.read(buffer);
while(len!=-1){
fos.write(buffer,0,len);
len=is.read(buffer);
}
is.close();
fos.close();
}
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Java文件copy。
public class FileInputOutputStreamTest {
public static void main(String[] args) {
File af = new File("D:/temp/a.txt");
File bf = new File("D:/temp/b.txt");
FileInputStream is = null;
FileOutputStream os = null;
if (!bf.exists()) {
try {
bf.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
is = new FileInputStream(af);
os = new FileOutputStream(bf);
byte b[] = new byte[1024];
int len;
try {
len = is.read(b);
while (len != -1) {
os.write(b, 0, len);
len = is.read(b);
}
System.out.println("文件内容复制成功!");
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (is != null)
is.close();
if (os != null)
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}