昆明阿里云代理商:android 写个软件存储 文件 图片

存储文件:

在 Android 中,可以使用内部存储和外部存储来存储文件。内部存储是应用的私有存储空间,只能应用本身访问。外部存储是 SD 卡等可移动存储设备,可以被多个应用或用户访问。

内部存储:

// 获取内部存储文件路径
File file = getFilesDir();
// 创建文件
File file1 = new File(file, "example.txt");
// 写文件
try {
    FileOutputStream fos = openFileOutput("example.txt", Context.MODE_PRIVATE);
    fos.write("Hello World".getBytes());
    fos.close();
} catch (Exception e) {
    Log.e(TAG, "存储文件失败", e);
}

外部存储:

// 判断 SD 卡是否可用
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
    // 获取 SD 卡的公共目录
    File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
    // 创建文件
    File file1 = new File(file, "example.txt");
    // 写文件
    try {
        FileOutputStream fos = new FileOutputStream(file1);
        fos.write("Hello World".getBytes());
        fos.close();
    } catch (Exception e) {
        Log.e(TAG, "存储文件失败", e);
    }
} else {
    Log.e(TAG, "SD 卡不可用");
}

存储图片:

// 获取内部存储文件路径
File file = getFilesDir();
// 创建图片文件
File imageFile = new File(file, "example.jpg");

// 从资源中获取图片
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.example);
// 将 Bitmap 写入图片文件
try {
    FileOutputStream fos = new FileOutputStream(imageFile);
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
    fos.close();
} catch (Exception e) {
    Log.e(TAG, "存储图片失败", e);
}

// 从相册选择图片并存储
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    if(requestCode == 1 && resultCode == RESULT_OK && data != null){
        // 获取选择的图片的 URI
        Uri uri = data.getData();
        // 从 URI 中获取 Bitmap
        Bitmap bitmap = null;
        try {
            bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 将 Bitmap 写入图片文件
        try {
            FileOutputStream fos = new FileOutputStream(imageFile);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
            fos.close();
        } catch (Exception e) {
            Log.e(TAG, "存储图片失败", e);
        }
    }
}

Android 写一个软件存储文件和图片的方法如下:

  1. 获取文件和图片的存储路径:

    //获取文件存储路径
    File filePath = getApplicationContext().getFilesDir();
    //获取图片存储路径
    File imagePath = getApplicationContext().getExternalFilesDir(Environment.DIRECTORY_PICTURES);
  2. 创建文件和图片:

    try {
     //创建文件
     File file = new File(filePath,"test.txt");
     file.createNewFile();
     //创建图片
     File imageFile = new File(imagePath,"testImage.jpg");
     imageFile.createNewFile();
    } catch (IOException e) {
     e.printStackTrace();
    }
  3. 将数据写入文件和图片:

    昆明阿里云代理商:android 写个软件存储 文件 图片
    //写入数据到文件
    try {
     FileOutputStream fileOutputStream = openFileOutput("test.txt", Context.MODE_PRIVATE);
     String data = "Hello, World!";
     fileOutputStream.write(data.getBytes());
     fileOutputStream.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
    //写入图片到文件
    try {
     Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test_image);
     ByteArrayOutputStream stream = new ByteArrayOutputStream();
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
     byte[] byteArray = stream.toByteArray();
     
     FileOutputStream fileOutputStream = new FileOutputStream(imageFile);
     fileOutputStream.write(byteArray);
     fileOutputStream.flush();
     fileOutputStream.close();
     
    } catch (IOException e) {
     e.printStackTrace();
    }
  4. 从文件和图片读取数据:

    //从文件读取数据
    try {
     FileInputStream fileInputStream = openFileInput("test.txt");
     byte[] data = new byte[fileInputStream.available()];
     fileInputStream.read(data);
     fileInputStream.close();
     String text = new String(data);
    } catch (IOException e) {
     e.printStackTrace();
    }
    //从图片读取数据
    try {
     Bitmap bitmap = BitmapFactory.decodeFile(imageFile.getPath());
    } catch (Exception e) {
     e.printStackTrace();
    }

    以上是Android写一个存储文件和图片的方法。需要注意的是,对于图片的存储,在使用完后要记得进行释放,以免占用内存过高。

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/154790.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年2月28日 02:51
下一篇 2024年2月28日 03:10

相关推荐

  • 栖霞阿里云企业邮箱代理商:阿里邮箱怎么找回

    阿里云企业邮箱代理商:阿里邮箱怎么找回 1. 栖霞阿里云企业邮箱代理商介绍 栖霞阿里云企业邮箱代理商是一家专业的阿里云企业邮箱代理商,致力于为企业提供优质、稳定、安全的企业邮箱服务。我们拥有丰富的经验和专业的团队,能够满足各类企业的不同需求。 2. 阿里云企业邮箱的优势 阿里云企业邮箱作为国内领先的企业邮箱品牌,具有以下优势: 安全可靠:阿里云企业邮箱采用多…

    2024年2月9日
    16000
  • 福州阿里云代理商:apiinfo jar

     福州阿里云代理商:apiinfo jar 阿里云是中国领先的云计算服务提供商,为企业和个人提供了一系列优质的云计算产品和服务。在福州地区,我们作为阿里云的授权代理商,引入了最新的apiinfo jar技术,帮助客户快速实现云上应用部署和管理。 一、apiinfo jar的优势 1. 简化部署流程:apiinfo jar通过集成了丰富的云计算API,为开发…

    2024年1月26日
    15300
  • 宁波阿里云代理商:android 网络图片快速加载

    在 Android 中,可以使用 Glide 或 Picasso 等图片加载库来实现网络图片的快速加载。这两个库都提供了简单易用的API,能够实现图片的异步加载、缓存管理和自动的图片大小调整等功能。 以下是使用 Glide 加载网络图片的示例代码: 在 build.gradle 文件中添加 Glide 依赖: implementation 'com…

    2024年2月23日
    14700
  • 西安阿里云代理商:abc三类地址 网络地址

    西安阿里云代理商:abc三类地址 网络地址 的优势 引言 ABC三类地址网络地址在西安地区的阿里云代理商中具有巨大的优势。本文将分析这些优势,为您解释为何选择西安阿里云代理商能够帮助您更好地管理和扩展您的网络。 提供稳定可靠的云计算服务 作为阿里云代理商,我们的首要目标是提供稳定可靠的云计算服务。ABC三类地址网络地址的优越性使得我们能够实现更高级别的资源隔…

    2024年1月14日
    16200
  • 邯郸阿里云代理商:阿里云服务器jdk

    邯郸阿里云代理商提供阿里云服务器jdk的安装、配置和优化服务。我们可以根据客户的需求和应用场景,为客户提供最合适的jdk版本,并对jdk进行定制化配置,以确保服务器的性能和稳定性。我们还会帮助客户对jdk进行优化和调优,以提升应用程序的运行效率和响应速度。如果您需要阿里云服务器jdk相关的服务,欢迎联系我们,我们将竭诚为您提供专业的技术支持和解决方案。 如果…

    2024年2月18日
    15700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/