Android案例(sd卡存储)

1、布局


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><EditTextandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:hint="请输入内容"android:id="@+id/edit"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/input"android:text="保存到sd卡"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/result"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="读取sd卡内容"android:id="@+id/output"/>LinearLayout>

2、java代码

package com.example.a412application;import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
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 java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.RandomAccessFile;public class MainActivity extends AppCompatActivity {EditText ed;TextView tv;Button bt_in,bt_out;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ed=(EditText) findViewById(R.id.edit);tv=(TextView) findViewById(R.id.result);bt_in=(Button) findViewById(R.id.input);bt_out=(Button) findViewById(R.id.output);ActivityCompat.requestPermissions(MainActivity.this,new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"},1);bt_in.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//检查环境有无sd卡File sdCardDir=Environment.getExternalStorageDirectory();//获取sd卡的目录路径try {File destFile=new File(sdCardDir.getCanonicalPath()+File.separator+"mydata.txt");RandomAccessFile raf=new RandomAccessFile(destFile,"rw");//随机访问文件内容raf.seek(destFile.length());//文件定位到末尾String str=ed.getText()+"";//转换成字符串raf.write(str.getBytes());raf.close();}catch (IOException e){e.printStackTrace();}}}});bt_out.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {StringBuilder sb=new StringBuilder(" ");if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//检查环境有无sd卡File sdCard=Environment.getExternalStorageDirectory();//获取sd卡的目录路径try {File destfile=new File(sdCard.getCanonicalPath()+File.separator+"mydata.txt");FileInputStream fis=new FileInputStream(destfile);//创建了文件的输入流byte[] buffer=new byte[64];//建立缓冲区int hasRead;while((hasRead= fis.read(buffer))!=-1){//还没读完sb.append(new String(buffer,0,hasRead));tv.setText(sb.toString());//放在tv中显示}} catch (IOException e) {e.printStackTrace();}}}});}}

3、实现效果:
在这里插入图片描述
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部