`
昔雪似花
  • 浏览: 204357 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android直接读取数据库文件

阅读更多
public class Dictionary extends Activity  implements OnClickListener, TextWatcher{
    private final String DATABASE_PATH = android.os.Environment
            .getExternalStorageDirectory().getAbsolutePath()
            + "/dictionary";
    private final String DATABASE_FILENAME = "dictionary.db3";
    SQLiteDatabase database;
    Button btnSelectWord;
    AutoCompleteTextView actvWord;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // 打开数据库,database是在Main类中定义的一个SQLiteDatabase类型的变量
        database = openDatabase();
        // 下面的代码装载了相关组件,并设置了相应的事件
        btnSelectWord = (Button) findViewById(R.id.btnSelectWord);
        actvWord = (AutoCompleteTextView) findViewById(R.id.actvWord);
        btnSelectWord.setOnClickListener(this);
        actvWord.addTextChangedListener(this);
    }
    public void onClick(View view)
    {
        //  查找单词的SQL语句
        String sql = "select chinese from t_words where english=?";  
        Cursor cursor = database.rawQuery(sql, new String[]
        { actvWord.getText().toString() });
        String result = "未找到该单词.";
        //  如果查找单词,显示其中文信息
        if (cursor.getCount() > 0)
        {
            //  必须使用moveToFirst方法将记录指针移动到第1条记录的位置
            cursor.moveToFirst();
            result = cursor.getString(cursor.getColumnIndex("chinese"));
            Log.i("tran", "success"+result);
        }
        //  显示查询结果对话框
        new AlertDialog.Builder(this).setTitle("查询结果").setMessage(result)
                .setPositiveButton("关闭", null).show();

    }

    private SQLiteDatabase openDatabase() {
        try {
            // 获得dictionary.db文件的绝对路径
            String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;
            File dir = new File(DATABASE_PATH);
            // 如果/sdcard/dictionary目录中存在,创建这个目录
            if (!dir.exists())
                dir.mkdir();
            // 如果在/sdcard/dictionary目录中不存在
            // dictionary.db文件,则从res\raw目录中复制这个文件到
            // SD卡的目录(/sdcard/dictionary)
            if (!(new File(databaseFilename)).exists()) {
                // 获得封装dictionary.db文件的InputStream对象
                InputStream is = getResources().openRawResource(
                        R.raw.dictionary);
                FileOutputStream fos = new FileOutputStream(databaseFilename);
                byte[] buffer = new byte[8192];
                int count = 0;
                // 开始复制dictionary.db文件
                while ((count = is.read(buffer)) > 0) {
                    fos.write(buffer, 0, count);
                }

                fos.close();
                is.close();
            }
            // 打开/sdcard/dictionary目录中的dictionary.db文件
            SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(
                    databaseFilename, null);
            return database;
        } catch (Exception e) {
        }
        return null;
    }
    @Override
    public void afterTextChanged(Editable s) {
    }
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
    }
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

}
分享到:
评论
1 楼 xucm1986 2011-06-08  
博主,是否知道直接在电脑上访问android数据库,假设我已经root过

相关推荐

    android本地读取数据库db文件查询本地归属地

    这个项目就是一个关于如何在Android应用中本地读取SQLite数据库(db文件)查询归属地的示例。下面将详细介绍这个过程涉及的关键知识点。 首先,Android系统默认支持SQLite数据库,它是轻量级的关系型数据库,适合于...

    android查看数据库文件,导出数据库方便查看

    - **Android Studio的Device File Explorer**:集成在Android Studio中的一个功能,可以直接浏览设备或模拟器中的文件系统,并下载数据库文件。 2. **导出数据库**: - 使用上述的ADB或Device File Explorer,你...

    Android 读写文件,读写数据库(SQLite)

    在Android开发中,读写文件和管理数据库是两个至关重要的任务。SQLite是一个轻量级的、关系型数据库,被广泛应用于移动应用中,因为它能够高效地存储和检索大量数据。以下是对这两个主题的详细讲解: ### 1. ...

    Android软件开发制作第三方数据库与读取文件中数据库详解

    而`location`可能指的是数据库文件在设备上的存储位置,比如`/data/data/your_package_name/databases/`,开发者需要确保有合适的权限来读写这个位置。 总的来说,Android软件开发中的第三方数据库集成提供了更高效...

    android sqlcipher给数据库文件加密

    本文将深入探讨如何在Android项目中使用SQLCipher来加密数据库文件。 首先,了解SQLCipher的基本原理。SQLCipher基于SQLite,它通过在数据库操作中添加加密层,确保数据在存储和传输过程中保持安全。SQLCipher使用...

    android读取sqlite数据库的数据并用listview显示

    本教程将详述如何在Android应用中读取SQLite数据库的数据并利用ListView进行展示。 首先,我们需要创建SQLite数据库。在Android中,我们通常通过扩展SQLiteOpenHelper类来实现,这个类帮助我们管理数据库的创建和...

    Android读取本地json文件的方法(解决显示乱码问题)

    - **Android文件操作**:Android提供了多种文件操作方法,包括读写文件、文件流操作等。 - **SD卡操作**:Android允许应用在外部存储(如SD卡)上进行文件操作,但需要注意权限问题。 - **Android视图View和控件**:...

    android数据库文件加密

    总结来说,"android数据库文件加密"涉及到了使用JNI与C/C++原生库结合,实现SQLite数据库文件的读写加密,以提高数据安全性。通过合理选择加密算法、管理密钥、优化性能以及关注安全性,可以有效地保护用户的隐私...

    安卓SQLite数据库相关-android读取本地.db文件实现不变数据本地化.rar

    本教程将围绕“安卓SQLite数据库相关-android读取本地.db文件实现不变数据本地化”这一主题,探讨如何在Android应用中读取和使用本地SQLite数据库文件,以实现数据的本地化存储。 首先,要在Android应用中使用...

    Android源码——数据库SQLite.zip

    这个压缩包文件"Android源码——数据库SQLite.zip"可能包含了关于Android中SQLite数据库的源码分析、使用示例以及相关的图像资源,如1-120912223R80-L.png,可能用于解释或展示SQLite在Android中的工作原理。...

    android中复制资源文件中的数据库文件到sd卡或内存源码

    在Android开发中,有时我们需要将预置的数据库文件与应用一起发布,并在应用程序首次启动时将其复制到外部存储(如SD卡)或内部存储(内存)中,以便于后续的操作和使用。这样的需求通常出现在那些需要提供初始数据...

    Android读取Assert资源目录下数据库,数据库操作

    总之,在Android中从`assets`目录读取数据库涉及复制数据库文件、创建数据库帮助器、打开数据库并进行操作等步骤。通过这种方式,我们可以预先加载数据库,提供快速启动体验,或者在不联网的情况下使用预设的数据。...

    安卓Android源码——数据库文件写入SD卡.zip

    在安卓(Android)平台上,开发人员经常需要处理数据存储问题,包括将数据库文件保存到外部存储,也就是我们常说的SD卡。本资料“安卓Android源码——数据库文件写入SD卡.zip”提供了一个实例,展示了如何在Android...

    Android应用源码之数据库文件写入SD卡-IT计算机-毕业设计.zip

    在Android应用开发中,将数据库文件写入SD卡是一个常见的需求,特别是在处理大量数据或需要离线存储的情况下。本项目“Android应用源码之数据库文件写入SD卡”是一个很好的学习资源,适合于毕业设计或者对Android...

    Android 文件读写操作

    在Android系统中,文件读写操作是开发过程中常见的任务,涉及到资源文件、数据区文件以及外部存储(如SD卡)的访问。以下是对这些操作的详细说明: 一、资源文件的读取 1. 从resource的raw中读取文件数据: 资源...

    android文件上传及写入数据库

    总的来说,Android文件上传涉及到文件读取和网络请求,而数据库操作则包括数据库和表的创建、数据的增删改查。理解并熟练运用这些知识,能帮助开发者构建功能完善的Android应用程序。在实际项目中,还应关注错误处理...

    android项目中读取ini配置文件

    本文将详细介绍如何在Android项目中读取存放在`assets`文件夹中的`ini`配置文件。 1. **ini文件格式介绍** `ini`文件是一种轻量级的配置文件格式,主要用于存储键值对数据。通常,每个节(section)以方括号`[]`...

    Android 读写文件和数据库(SQLite)

    在Android开发中,读写文件和管理数据库是两个至关重要的任务。SQLite数据库是Android系统内置的关系型数据库,常用于存储应用程序的数据。同时,ListView组件则是显示大量数据的标准控件,通常与数据源(如文件或...

    android 的sqlite数据库加密实现

    在Android应用开发中,SQLite是一个常用的轻量级数据库,它为数据存储提供了便利。然而,随着数据安全性的日益重要,对SQLite数据库进行加密是必要的,以保护敏感信息免受未授权访问。本篇文章将深入探讨如何在...

    Android读取数据库数据例子

    综上所述,Android读取MySQL数据库数据涉及服务器端的PHP编程、Android的网络请求、JSON解析以及SQLite数据库操作等多个环节。理解并掌握这些知识点,将帮助你成功实现Android应用与远程MySQL数据库的交互。

Global site tag (gtag.js) - Google Analytics