外部存储,个人理解是在app作用域之外存储,就是数据没有和app做关联,app卸载后,它依旧存在

而不再是之前手机本身存储空间和sd卡的区别,现在安卓手机已经不携带可拆卸的SD卡

androidManifest.xml 需要写入读写权限

简单布局:

java代码:  需要动态权限,android8以后,真机都需要,模拟器可能不需要

package com.example.handleproject;

import androidx.annotation.NonNull;

import androidx.appcompat.app.AppCompatActivity;

import androidx.core.app.ActivityCompat;

import androidx.core.content.ContextCompat;

import android.Manifest;

import android.content.pm.PackageManager;

import android.os.Bundle;

import android.os.Environment;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

public class externalActivity extends AppCompatActivity {

private TextView mTextView;

private Button save;

private Button read;

private TextView showText;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_external);

mTextView=findViewById(R.id.text);

save=findViewById(R.id.save);

read=findViewById(R.id.read);

showText=findViewById(R.id.showTxt);

int permisson= ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);

if(permisson!= PackageManager.PERMISSION_GRANTED){

// TODO: 2020-08-14 动态申请权限

ActivityCompat.requestPermissions(this,

new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},

1);

}

}

public void oprerate(View v){

String path= Environment.getExternalStorageDirectory().getAbsolutePath()+"/imooc.txt";

Log.d("External", path);

switch (v.getId()){

case R.id.save:

File f=new File(path);

try{

if(!f.exists()){

f.createNewFile();

}

//用追加的模式写入

FileOutputStream fos=new FileOutputStream(path,true);

String str=mTextView.getText().toString();

fos.write(str.getBytes());

}catch (IOException E){

Log.d("External err", E.getMessage());

}

break;

case R.id.read:

try{

FileInputStream fis=new FileInputStream(path);

byte[] b=new byte[1024];

int len=fis.read(b);

String str2=new String(b,0,len);

showText.setText(str2);

fos.close();//不要忘记关闭写入

}catch (IOException E){

E.printStackTrace();

}

break;

}

}

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

}

}

存储地址在mnt/sdcard(androidStudio上面查看) 的更目录下面,在手机上看时候其实是在根目录下(手机文件管理器显示是"内部存储",也可能是其他的)

更详细的说明

Android查看真机布局,android-外部存储相关推荐

  1. Android进阶之路 - 使用Stetho查看真机数据库

    起因:维护老项目,需查看本地数据库数据,起初使用了DDMS调试,但使用时发现真机需Root.而我又不想使用模拟器,在此基础下我发现了Stetho三方框架能实现我的需求,故在使用真实有效的基础下总结此篇 ...

  2. android studio 远程调试,Unity3D学习笔记——Android远程真机调试(Unity Remote)

    前言:当使用Unity开发移动端的游戏,特别是使用到手机的传感器,如重力感应等,调试的时候,很麻烦, 因为每次都需要编译成APK后安装到手机中测试,而Unity Remote便能很好的解决这个问题,U ...

  3. vs使用android真机调试,UnityVS真机调试Android APP

    UnityVS真机调试Android APP 前提:完成UnityVS环境搭建.Unity Android环境搭建.Unity Android打包 步骤: 1. USB线连接手机和电脑,在手机的开发者 ...

  4. 解决AndroidStudio连不上Android设备真机

    解决AndroidStudio连不上Android设备真机 刚好遇到这个问题,查阅了很多资料,看到有人分享了引起该问题的几个原因,我总结了一下: 1.手机设置问题.开USB调试 方法:手机设置-开发人 ...

  5. android studio 真机调试连不上手机

    android studio 真机调试问题 开是和学习android 开发两天了,做了一个小的demo,调试的话之前一直都是使用 夜神模拟器 来进行调试的,但是虚拟机上的运行效果终归和手机上是有区别的 ...

  6. Xamarin Android项目真机测试闪退

    Xamarin Android项目真机测试闪退 项目在模拟器中运行正常,但在真机上闪退.这是由于项目设置使用共享的Mono运行时. Visual Studio中,在项目属性-Android Optio ...

  7. Android studio真机调试

    在我们进行Android开发的时候,调试这个环节是必不可少的也是至关重要的,使用真机调试可以更加准确清晰的显示效果. 真机调试Android应用 1.用数据线将手机连接到电脑,打开手机的开发者选项. ...

  8. android申请蓝牙的权限,Android Studio 真机调试捕获异常申请和蓝牙权限代码

    Android Studio 真机调试捕获异常申请和蓝牙权限代码 第一步: 在Android的manifest.xml文档中加入下面的声明: android:name="android.ha ...

  9. Android Studio 真机调试vivo系列手机安装失败解决办法

    Android Studio 真机调试vivo系列手机安装失败或一直在提示安装加载(一直没有反应) Android Studio 3.5.2遇到的问题,小米.魅族等手机暂时没有出现这种情况. 解决方法 ...

最新文章

  1. 2010.12.14 关于decimal和Numeric类型
  2. 《C++入门经典(第5版•修订版)》——2.6 问与答
  3. 两个date 相差得到月份_DATE和TIME函数的正确打开方式
  4. Python(字符串,列表,元组,字典)
  5. vue工程全局设置ajax的等待动效
  6. Python Django 打印执行过的查询语句
  7. 手机照片丢失或误删如何恢复
  8. 猫眼电影评论_电影的人群意见和评论家的意见一样好吗?
  9. 玩转oracle 11g(33):无监听程序
  10. (3)机器人的DH参数建模详解
  11. java 静态方法中调用非静态方法
  12. 办公一定要有哪些基础软件?
  13. 重庆大学计算机学院研究生奖学金评定准则,重庆大学经管学硕士生奖学金评定办法(试行).doc...
  14. python开三次方_用python计算三次方根
  15. nRF 主机扫描过滤器
  16. 我对IT项目经理工作的理解
  17. 上海财经大学如何构建量化高频数据中心?
  18. android checkbox 文字和图标间距,CheckBox选择框和文字设置间距
  19. 程序员如何承接软件外包项目(转)
  20. STM32单片机擦除片内Flash超时报错问题排查

热门文章

  1. jeeCMS首页加载流程
  2. django模板系统(下)
  3. C#曲线分析平台的制作(四,highcharts+ajax加载后台数据)
  4. poj 3071 Football
  5. 腾讯QQ团队开源分布式后台毫秒服务引擎全解析:引擎架构、RPC、灰度……
  6. linux lnmp15 部署laravel项目
  7. 关于cat命令修改文件内容(导入变量符号以及变量内容)
  8. java动态调用c++库
  9. Docker 跨主机网络方案分析
  10. Map四种获取key和value值的方法,以及对map中的元素排序