您的位置:首页 > 运维架构

openFileOutput()对文件操作

2013-04-28 14:02 281 查看
android 中使用openFileOutput(name, null),对文件进行保存与读取操作
当要用到读取文件时,必须使用c.getFilesDir()来得到已经保存的路径:

ex:

private SQLiteDatabase copyDatabase2Device() throws IOException {
String databasePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/";//"/dictionary/" ;
String databaseName = databasePath + "adnnet.db";
InputStream inStream = null;
FileOutputStream outStream = null;

if(!(new File(databaseName)).exists()) {

inStream = c.getResources().openRawResource(R.raw.adnnet);
outStream = new FileOutputStream(databaseName);
int count = 0;
if(inStream != null) {
byte[] buffer = new byte[4096];
while((count = inStream.read(buffer)) > 0) {
outStream.write(buffer, 0, count);
}
}
outStream.flush();
if(inStream != null) {
inStream.close();
inStream = null;
}

if(outStream != null) {
outStream.close();
outStream = null;
}
}
return SQLiteDatabase.openOrCreateDatabase(databaseName, null);
}

private boolean copyDatabase2Device1() {

InputStream inStream;
OutputStream outStream;
try {
if (isSdcardReally()&& !new File(c.getFilesDir()+"/adnnet.db").exists()) {
inStream = c.getResources().openRawResource(R.raw.adnnet);
outStream = c.openFileOutput("adnnet.db", Context.MODE_PRIVATE);
int count = 0;
byte[] buffer = new byte[4096];
while ((count = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, count);
}
outStream.flush();
outStream.close();
inStream.close();
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}

private String isDatabaseOK() {
File file = c.getFilesDir();
return file.getName();
}

private boolean isSdcardReally() {
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
return true;
return false;
}

public SQLiteDatabase openDatabase() {
try {
if (copyDatabase2Device1()) {
db = SQLiteDatabase.openOrCreateDatabase(c.getFilesDir()+"/adnnet.db", null);
return db;
}
} catch (Exception e) {
e.printStackTrace();
closeDatabase();
}
return null;
}

public void closeDatabase() {
if(db != null) {
db.close();
db = null;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: