目录
1. 涉及的步骤:
- 获取输入框中的文本信息前,需要检查输入框是否为空。
- 获取Android系统默认存储位置并在该文件夹下设置info.txt文件。
- 写入数据。
2. 要点(注意点):
- 判断文件夹是否成功创建的语句,要放在写入操作后面,不是写在File info = new File(FileName);的后面。
- File info = new File(FileName); 表示定义一个叫info.txt的文件变量,并未创建文件
- 需要在AndroidManifest.xml中给写入的权限,第二条是挂载权限,第二条可以不写。
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3. 知识点:
- 定义控件,并通过id关联到布局文件中的控件
private EditText user_id;
- 文字工具检查输入框是否为空:
TextUtils.isEmpty(user_id.getText())
true:表示输入框为空 false:表示输入框不为空
- 获取输入框内容
uid = user_id.getText().toString();
-
Log.d("这个空是标志作用,可以直接空着", "写下需要在控制台显示的内容");
- 获取Android存储路径
File FilePath = this.getFilesDir();
- 写入操作
FileOutputStream fos = new FileOutputStream(info); //info为要写入的文件的路径 fos.write((uid + "***" + upassword).getBytes()); fos.close();
- 俗称“吐司”,有页面上提示的功能
Toast.makeText(QQTest.this, "数据保存成功!!", Toast.LENGTH_SHORT).show();
- 控件的点击事件,此处是登录按钮login的点击事件
login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //保存数据 SaveData(); } });
4. Activity和源代码
public class QQTest extends AppCompatActivity {
private EditText user_id;
private EditText user_password;
private Button login;
private TextView miss_password;
private TextView id_register;
private TextView server_contract;
private String uid;
private String upassword;
//初始化
void Init() {
user_id = findViewById(R.id.user_id);
user_password = findViewById(R.id.user_password);
login = findViewById(R.id.login);
miss_password = findViewById(R.id.miss_password);
id_register = findViewById(R.id.id_register);
server_contract = findViewById(R.id.server_contract);
}
void SaveData() {
//文字工具检查是否为空
if (TextUtils.isEmpty(user_id.getText()) || TextUtils.isEmpty(user_password.getText())) {
Toast.makeText(QQTest.this, "请将数据补充完整", Toast.LENGTH_SHORT).show();
} else {
//获取输入框内容
uid = user_id.getText().toString();
upassword = user_password.getText().toString();
Log.d("", "用戶名:" + uid + " , 密碼:" + upassword);
Save(uid, upassword);
}
}
private void Save(String uid, String upassword) {
//获得路径
File FilePath = this.getFilesDir();
Log.d("", "filesDir==" + FilePath.toString());
//获得绝对路径
String FileName = FilePath + "/info.txt";
File info = new File(FileName);
Log.d("", "file==" + info.getAbsolutePath());
try {
//if若放在此处必返回false,
// File info = new File(FileName);表示定义一个交info的文件变量,并未创建文件
//写入数据
FileOutputStream fos = new FileOutputStream(info);
fos.write((uid + "***" + upassword).getBytes());
fos.close(); //是否创建成功
if (info.exists()) {
Log.d("", "info.txt创建成功!");
Toast.makeText(QQTest.this, "数据保存成功!!", Toast.LENGTH_SHORT).show();
} else {
//写入失败
Log.d("", "写入失败!!!");
Toast.makeText(QQTest.this, "数据保存失败!!", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qqtest);
//控件初始化
Init();
//登录按钮的点击事件
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//保存数据
SaveData();
}
});
}
}