• 4月13日学习日志


    今天学习了文件存储的读写。

    布局文件为:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.jay.example.filedemo1.MainActivity">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/nametitle" />
    
        <EditText
            android:id="@+id/editname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/detailtitle" />
    
        <EditText
            android:id="@+id/editdetail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:minLines="2" />
    
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
            <Button
                android:id="@+id/btnsave"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/btnwrite" />
    
            <Button
                android:id="@+id/btnclean"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/btnclean" />
        </LinearLayout>
    
        <Button
            android:id="@+id/btnread"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btnread" />
    
    </LinearLayout>

    文件操作类为:

    public class FileHelper {
    
        private Context mContext;
    
        public FileHelper() {
        }
    
        public FileHelper(Context mContext) {
            super();
            this.mContext = mContext;
        }
    
        /*
        * 这里定义的是一个文件保存的方法,写入到文件中,所以是输出流
        * */
        public void save(String filename, String filecontent) throws Exception {
            //这里我们使用私有模式,创建出来的文件只能被本应用访问,还会覆盖原文件哦
            FileOutputStream output = mContext.openFileOutput(filename, Context.MODE_PRIVATE);
            output.write(filecontent.getBytes());  //将String字符串以字节流的形式写入到输出流中
            output.close();         //关闭输出流
        }
    
    
        /*
        * 这里定义的是文件读取的方法
        * */
        public String read(String filename) throws IOException {
            //打开文件输入流
            FileInputStream input = mContext.openFileInput(filename);
            byte[] temp = new byte[1024];
            StringBuilder sb = new StringBuilder("");
            int len = 0;
            //读取文件内容:
            while ((len = input.read(temp)) > 0) {
                sb.append(new String(temp, 0, len));
            }
            //关闭输入流
            input.close();
            return sb.toString();
        }
    
    }
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        private EditText editname;
        private EditText editdetail;
        private Button btnsave;
        private Button btnclean;
        private Button btnread;
        private Context mContext;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mContext = getApplicationContext();
            bindViews();
        }
    
    
        private void bindViews() {
            editdetail = (EditText) findViewById(R.id.editdetail);
            editname = (EditText) findViewById(R.id.editname);
            btnclean = (Button) findViewById(R.id.btnclean);
            btnsave = (Button) findViewById(R.id.btnsave);
            btnread = (Button) findViewById(R.id.btnread);
    
            btnclean.setOnClickListener(this);
            btnsave.setOnClickListener(this);
            btnread.setOnClickListener(this);
        }
    
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.btnclean:
                    editdetail.setText("");
                    editname.setText("");
                    break;
                case R.id.btnsave:
                    FileHelper fHelper = new FileHelper(mContext);
                    String filename = editname.getText().toString();
                    String filedetail = editdetail.getText().toString();
                    try {
                        fHelper.save(filename, filedetail);
                        Toast.makeText(getApplicationContext(), "数据写入成功", Toast.LENGTH_SHORT).show();
                    } catch (Exception e) {
                        e.printStackTrace();
                        Toast.makeText(getApplicationContext(), "数据写入失败", Toast.LENGTH_SHORT).show();
                    }
                    break;
                case R.id.btnread:
                    String detail = "";
                    FileHelper fHelper2 = new FileHelper(getApplicationContext());
                    try {
                        String fname = editname.getText().toString();
                        detail = fHelper2.read(fname);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    Toast.makeText(getApplicationContext(), detail, Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    }
  • 相关阅读:
    BZOJ 1221 [HNOI2001] 软件开发 费用流_建模
    BZOJ 1180 / 2843 LCT模板题 + 双倍经验
    bzoj 4372: 烁烁的游戏 动态点分治+树链剖分+线段树
    bzoj 3730: 震波 动态点分治+树链剖分+线段树
    luogu P2634 [国家集训队]聪聪可可 点分治
    bzoj 1468: Tree 点分治
    bzoj 1296: [SCOI2009]粉刷匠 动态规划
    bzoj 1293: [SCOI2009]生日礼物 问题转化 + 性质分析 + 滚动数组优化
    BZOJ 1042: [HAOI2008]硬币购物 容斥原理+背包
    matplotlib模块
  • 原文地址:https://www.cnblogs.com/20193925zxt/p/14909821.html
Copyright © 2020-2023  润新知