创建一个新的Android工程,创建界面如图所示,完成内部存储的读写功能。在MainActivity中单击“保存数据到文件”按钮,将班级+姓名+学号保存至“data.txt”文件中,单击“从文件中读取数据”按钮,则读取存储数据的“data.txt”,将其中的内容显示在界面中
时间: 2024-05-09 21:14:42 浏览: 73
android---在内部存储中读写文件
好的,我了解了您的要求。下面是实现方法:
1. 创建一个新的 Android 工程,使用 Android Studio 打开。
2. 在 `app/src/main/res/layout/` 目录下创建 `activity_main.xml` 文件,代码如下:
```xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/edit_class"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入班级" />
<EditText
android:id="@+id/edit_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入姓名" />
<EditText
android:id="@+id/edit_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入学号" />
<Button
android:id="@+id/btn_save"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="保存数据到文件" />
<Button
android:id="@+id/btn_load"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="从文件中读取数据" />
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp" />
</LinearLayout>
```
3. 在 `app/src/main/java/` 目录下创建 `MainActivity.java` 文件,代码如下:
```java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText mEditClass;
private EditText mEditName;
private EditText mEditId;
private Button mBtnSave;
private Button mBtnLoad;
private TextView mTvContent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditClass = findViewById(R.id.edit_class);
mEditName = findViewById(R.id.edit_name);
mEditId = findViewById(R.id.edit_id);
mBtnSave = findViewById(R.id.btn_save);
mBtnLoad = findViewById(R.id.btn_load);
mTvContent = findViewById(R.id.tv_content);
mBtnSave.setOnClickListener(this);
mBtnLoad.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_save:
saveToFile();
break;
case R.id.btn_load:
loadFromFile();
break;
default:
break;
}
}
private void saveToFile() {
String classStr = mEditClass.getText().toString();
String nameStr = mEditName.getText().toString();
String idStr = mEditId.getText().toString();
String content = classStr + "," + nameStr + "," + idStr;
try {
File file = new File(getFilesDir(), "data.txt");
FileWriter fileWriter = new FileWriter(file);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(content);
bufferedWriter.close();
fileWriter.close();
mTvContent.setText("已保存数据到文件");
} catch (IOException e) {
e.printStackTrace();
}
}
private void loadFromFile() {
try {
File file = new File(getFilesDir(), "data.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line = bufferedReader.readLine();
bufferedReader.close();
fileReader.close();
String[] data = line.split(",");
String classStr = data[0];
String nameStr = data[1];
String idStr = data[2];
mTvContent.setText("班级:" + classStr + "\n姓名:" + nameStr + "\n学号:" + idStr);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
4. 运行该应用程序,点击“保存数据到文件”按钮,将班级 姓名 学号保存至“data.txt”文件中,点击“从文件中读取数据”按钮,则读取存储数据的“data.txt”,将其中的内容显示在界面中。
注意:为了保证内部存储的读写功能正常工作,需要在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
阅读全文