2、编写一个app,在EditText中输入内容,并写入文件。点击按钮读出文件内容。演示过程并在ddms中查看数据存储。
时间: 2024-03-08 16:49:22 浏览: 59
好的,以下是一个实现你所需功能的示例代码:
1. 在 Android Studio 中创建一个新项目,取名为 "FileIOExample",选择 "Empty Activity" 模板。
2. 在 activity_main.xml 布局文件中添加一个 EditText、一个 Button 和一个 TextView,代码如下:
```xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.fileioexample.MainActivity">
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:hint="Enter text to save"
android:padding="10dp"
android:textSize="18sp" />
<Button
android:id="@+id/save_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/edit_text"
android:layout_marginTop="20dp"
android:text="Save to file"
android:textSize="18sp" />
<Button
android:id="@+id/load_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/save_button"
android:layout_marginTop="20dp"
android:text="Load from file"
android:textSize="18sp" />
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/load_button"
android:layout_marginTop="20dp"
android:padding="10dp"
android:textSize="18sp" />
</RelativeLayout>
```
3. 在 MainActivity.java 文件中添加以下代码:
```java
import android.os.Bundle;
import android.os.Environment;
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.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity {
EditText editText;
Button saveButton, loadButton;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.edit_text);
saveButton = findViewById(R.id.save_button);
loadButton = findViewById(R.id.load_button);
textView = findViewById(R.id.text_view);
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = editText.getText().toString().trim();
saveToFile(text);
editText.setText("");
}
});
loadButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = readFromFile();
textView.setText(text);
}
});
}
private void saveToFile(String text) {
String filename = "data.txt";
try {
File file = new File(Environment.getExternalStorageDirectory(), filename);
FileOutputStream outputStream = new FileOutputStream(file, true);
outputStream.write(text.getBytes());
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private String readFromFile() {
String filename = "data.txt";
StringBuilder stringBuilder = new StringBuilder();
try {
File file = new File(Environment.getExternalStorageDirectory(), filename);
FileInputStream inputStream = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
reader.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
}
```
4. 在 AndroidManifest.xml 文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
5. 运行应用程序并测试功能。在 ddms 中可以查看文件保存在 /sdcard/data.txt 中。
这个应用程序的功能很简单:用户在 EditText 中输入文本,点击 "Save to file" 按钮将文本保存到文件中,然后点击 "Load from file" 按钮从文件中读取文本并在 TextView 中显示。需要注意的是,为了让应用程序能够访问存储空间,需要在模拟器或 Android 设备上允许应用程序访问存储空间。
阅读全文