zoukankan      html  css  js  c++  java
  • API内部文件读取

    直接上代码吧

    尝试将项目复制后建一个新的项目,结果总是有问题,不过可以把原项目转换为新项目,方法如下:

    1.项目右键在android tools 有个 rename application package选项,这是改包名的,改完这个就是两个不同的应用

    2.要想两个工程共存在Eclipse下的话,就还要选中项目 按F2 就可以改 项目的名字。

    主要解决在上一个文档中,路径data/data/com.swust.intern这个不能写错的问题,所以直接使用谷歌提供的API获取环境变量,防止读错。

     getFilesDir(),返回一个文件路径:

    data/data/com.swust.ApiIntern/files路径

    修改前:

        File file =new File("data/data/com.swust.intern/info.txt");

    修改后:
        File file =new File(getFilesDir(),"info.txt");

    这样在data/data/com.swust.ApiIntern/files(多个文件夹)下便有了info.txt

    代码:

    package com.swust.intern;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStreamReader;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.Toast;
    import com.swust.APIintern.R;
    
    public class MainActivity extends Activity {
    
        private EditText et_name;
        private EditText et_pwd;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //已经是全局变量,应用启动时获取ID
            et_name = (EditText) findViewById(R.id.et_name);
            et_pwd = (EditText) findViewById(R.id.et_pwd);
            
            //应用启动后,读取存档的用户名和密码
            readAccount();
        }
        public void readAccount(){
            //File file =new File("data/data/com.swust.intern/info.txt");
            File file =new File(getFilesDir(),"info.txt");
            //判读文件是否存在
            if(file.exists()){
                try{
                    FileInputStream fis =new FileInputStream(file);
                    //把字节流转化为字符流
                    BufferedReader br =new BufferedReader(new InputStreamReader(fis));
                    //读取txt文件的用户名和密码
                    //读取一行
                    String text =br.readLine();
                    //使用“##”标识切割,得到字符串数组
                    String[] s = text.split("##");
                    
                    
                    et_name.setText(s[0]);
                    et_pwd.setText(s[1]);
                    
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
            
        }
        public void login(View v){
            
            CheckBox cb      = (CheckBox)findViewById(R.id.cb);
            String name=et_name.getText().toString();
            String pwd =et_pwd.getText().toString();
            //判读复选框是否被勾选
            if(cb.isChecked()){
            //"data/data/com.swust.intern"是内部存储空间路径
            //File file =new File("data/data/com.swust.intern/info.txt");
                File file =new File(getFilesDir(),"info.txt");
                FileOutputStream fos;
                try{
                    fos = new FileOutputStream(file);
                    //加“##”是为了读取时好分割
                    fos.write((name + "##" +pwd).getBytes());
                    fos.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
            //System.out.println("登陆成功");
            //创建吐司对话框
            /* 第一个参数上context,而activity本来就是context的子类,所以直接填this*/
            /*第三个参数为持续显示时间,只有LENGTH_SHORT(2S)和LENGTH_LONG(5s)两种选择*/
            /*Toast t= Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT);
            //显示吐司对话框
            t.show();*/
            
            Toast.makeText(this, "登陆成功", Toast.LENGTH_SHORT).show();
        }
    }
  • 相关阅读:
    vue-router replace 浏览器前进后退记忆栈不记住当前菜单页面
    vue-router active-class 进入当前菜单的样式
    vue-router createWebHashHistory
    浅析如何升级npm及更新npm之后报错(node:15920) ExperimentalWarning: The fs.promises API is experimental 的解决
    浅析nvm介绍、安装与使用以及遇到的问题解决
    npm安装vue-cli报错internal/modules/cjs/loader.js(Error: Cannot find module 'D:Program odejs ode_global ode_modulesvue-cliinvue')
    浅析如何升级vue-cli以及使用npm卸载包时遇到问题:npm ERR! code EEXIST(npm ERR! File exists: D:Program odejs ode_globalvue-list.cmd
    浅析如何实现根据图片自动切换背景色功能:提取图片主题色方案探索
    sync.Pool is much slower than using channel, so why should we use sync.Pool?
    golange benchmark运行
  • 原文地址:https://www.cnblogs.com/shuqingstudy/p/4877092.html
Copyright © 2011-2022 走看看