直接上代码吧
尝试将项目复制后建一个新的项目,结果总是有问题,不过可以把原项目转换为新项目,方法如下:
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(); } }
时间: 2024-11-05 17:21:21