• Android文件操作


    第一步:前台页面main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/fileName" />
    
        <EditText
            android:id="@+id/txtName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint=""
            android:maxLines="1" />
    
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/fileContext" />
    
        <EditText
            android:id="@+id/txtContext"
            android:layout_width="fill_parent"
            android:layout_height="100dp"
            android:gravity="left"
            android:hint=""
            android:minLines="4" />
    
        <Button
            android:id="@+id/btnSave"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/btnSave" />
    
    </LinearLayout>

    第二步:后台代码

    package apk.example.androidapk;
    
    import android.os.Bundle;
    import android.os.Environment;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    import android.app.Activity;
    import apk.example.service.FileServer;
    
    public class MainActivity extends Activity {
        public Button btnSave;
        public EditText txtName, txtContext;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            txtName = (EditText) findViewById(R.id.txtName);
            txtContext = (EditText) findViewById(R.id.txtContext);
            btnSave = (Button) findViewById(R.id.btnSave);
            btnSave.setOnClickListener(new BtnSaveListener());
        }
    
        private final class BtnSaveListener implements View.OnClickListener {
    
            @Override
            public void onClick(View v) {
                String fileName = txtName.getText().toString();
                String fileContext = txtContext.getText().toString();
                FileServer server = new FileServer(getApplicationContext());
                try {
                    if (Environment.getExternalStorageState().equals(
                            Environment.MEDIA_MOUNTED)) {
                        server.saveToSDCard(fileName, fileContext);
                        // 保存成功
                        Toast.makeText(getApplicationContext(), R.string.success,
                                Toast.LENGTH_LONG).show();
                    } else {
                        // SDCard不存在或者写保护
                        Toast.makeText(getApplicationContext(),
                                R.string.sdCardMessage, Toast.LENGTH_LONG).show();
                    }
                } catch (Exception e) {
                    // 保存失败
                    Toast.makeText(getApplicationContext(), R.string.fail,
                            Toast.LENGTH_LONG).show();
                    e.printStackTrace();
                }
            }
        }
    }
    package apk.example.service;
    
    import java.io.File;
    import java.io.FileOutputStream;
    
    import android.content.Context;
    import android.os.Environment;
    
    public class FileServer {
        private Context context;
    
        public FileServer(Context context) {
            this.context = context;
        }
    
        /**
         * 
         * @param 文件名称
         * @param 文件内容
         * @throws 异常信息
         */
        public void save(String fileName, String fileContext) throws Exception {
            // 私有操作模式:创建出来的文件只能被本应用访问,其它应用无法访问该文件,另外采用私有操作模式创建的文件,写入文件中的内容会覆盖原文件的内容
            FileOutputStream outStream = context.openFileOutput(fileName,
                    Context.MODE_PRIVATE);
            outStream.write(fileContext.getBytes());
            outStream.close();
        }
    
        /**
         * 
         * @param 文件名称
         * @param 文件内容
         * @throws 异常信息
         */
        public void saveToSDCard(String fileName, String context) throws Exception {
            // 私有操作模式:创建出来的文件只能被本应用访问,其它应用无法访问该文件,另外采用私有操作模式创建的文件,写入文件中的内容会覆盖原文件的内容
            File file = new File(Environment.getExternalStorageDirectory(),
                    fileName);
            FileOutputStream outStream = new FileOutputStream(file);
            outStream.write(context.getBytes());
            outStream.close();
        }
    }

    如图:

    注:在AndroidManifest.xml文件中添加下列权限。

        <!-- 在SDCard中创建与删除文件权限 -->
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
        <!-- 往SDCard写入数据权限 -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

  • 相关阅读:
    phaser3入门教程-从零开始开发一个打砖块游戏
    Python操作PDF-文本和图片提取(使用PyPDF2和PyMuPDF)
    从零开始手把手教你使用javascript+canvas开发一个塔防游戏01地图创建
    Python实现超级玛丽游戏系列教程02玛丽走跑
    Python实现超级玛丽游戏系列教程01玛丽登场
    通过游戏学javascript系列第一节Canvas游戏开发基础
    mvc模式jsp+servel+dbutils oracle基本增删改查demo
    mvc模式jsp+servel+jdbc oracle基本增删改查demo
    N个任务掌握java系列之统计一篇文章中单词出现的次数
    mysq数据库管理工具navicat基本使用方法
  • 原文地址:https://www.cnblogs.com/xiaoyao095/p/4071013.html
Copyright © 2020-2023  润新知