android 文件保存到应用和sd卡中

<span style="font-size:18px;">1.权限添加
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

public static String getDataFolderPath(Context paramContext) {
        return Environment.getDataDirectory() + "/data/"
                + paramContext.getPackageName() + "/files";
    }

    public static String getMyFileDir(Context context){
        return context.getFilesDir().toString();
    }

    public static String getMyCacheDir(Context context){
        return context.getCacheDir().toString();
    }
    /**
     * @desc 保存内容到文件中
     * @param fileName
     * @param content
     * @throws Exception
     */
    public static void save(Context context, String fileName, String content, int module) {
        try {
            FileOutputStream os = context.openFileOutput(fileName, module);
            os.write(content.getBytes());
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * @desc 读取文件内容
     * @param fileName
     * @return
     */
    public static String read(Context context, String fileName){

        try {
            FileInputStream fis = context.openFileInput(fileName);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            byte[] b = new byte[1024];
            int len = 0;
            while((len = fis.read(b)) != -1){
                bos.write(b, 0, len);
            }
            byte[] data = bos.toByteArray();
            fis.close();
            bos.close();
            return new String(data);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  null;
    }

    /**
     * @desc 将文本内容保存到sd卡的文件中
     * @param context
     * @param fileName
     * @param content
     * @throws IOException
     */
    public static void saveToSDCard(Context context, String fileName, String content) throws IOException{

        File file = new File(Environment.getExternalStorageDirectory(),fileName);
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(content.getBytes());
        fos.close();
    }

    /**
     * @desc 读取sd卡文件内容
     * @param fileName
     * @return
     * @throws IOException
     */
    public static String readSDCard(String fileName) throws IOException {

        File file = new File(Environment.getExternalStorageDirectory(),fileName);
        FileInputStream fis = new FileInputStream(file);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        byte[] buffer =  new byte[1024];
        int len = 0;
        while((len = fis.read(buffer)) != -1)
        {
            bos.write(buffer, 0, len);
        }
        byte[]  data = bos.toByteArray();
        fis.close();
        bos.close();

        return new String(data);
    }</span>
时间: 2024-10-14 14:15:19

android 文件保存到应用和sd卡中的相关文章

转-Android 之 使用File类在SD卡中读取数据文件

如果需要在程序中使用sdcard进行数据的存储,那么需要在AndroidMainfset.xml文件中 进行权限的配置: Java代码:   <!-- 在sd中创建和删除文件的权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 向SD卡中的写入权限 --> Java代码:   <uses-permission an

Android程序函数 将assets文件夹下的文件复制到手机的sd卡中(包括子文件夹)

最近在做个功能是将asset文件夹下的所有文件(包括子文件)全部拷贝出来到指定目录下.所用的方法无非是用AssetManager.但是这里有个问题是也要讲子文件夹和子文件都要拷贝出来.到网上Google了下,也到baidu搜索了下,发现了很多类似问题.但好像都有问题.显然只能做到将asset直接目录下的文件拷贝出来,但子文件夹拷贝不出来,而且,碰到文件夹,会抛异常.无奈自己只好动手写了个.如下: private void CopyAssets(String assetDir,String dir

将android项目assets文件夹下的文件复制到SD卡中

<pre name="code" class="html">package com.lapel.activity.html; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import android.content.Context; /** * * 将assets文件夹下的文件复制

android 解决传送中文名文件到模拟器SD卡中

RT,android adb push命令解决中文名文件,把电脑本地的文件导入到Android模拟器AVD的SD卡中 1.通过adb push命令 PS:windows下不稳定,试了下中文名文件能传过去,但文件名为空,linux下可以.若win下该方法不行,参考第二种方法.字幕数字文件名不必说了,肯定没问题. 通过adb push,则可将文件添加到SD卡中.如果想在push的时候修改文件名称的话,只需要修改push的第二个参数改成完整路径(目录+文件名),如E:/videos/welcom.mp

Android 使用Log4j把日志写入SD卡,动态修改输出文件名称

一.Log4j简单使用 1. 下载log4j.jar http://logging.apache.org/log4j/2.x/ 2. 创建Java代码 public class Loggers { public static Logger logger = Logger. getLogger(Loggers. class); public static void init() { try { PatternLayout patternLayout = new PatternLayout(); p

android 往sd卡中写入文件

在调用前需要判断是否有写入权限 Environment类提供了比较丰富的方法 static File getDataDirectory() 获得android data的目录. static File getDownloadCacheDirectory() 获得下载缓存目录. static File getExternalStorageDirectory() 或者外部存储媒体目录. static File getExternalStoragePublicDirectory(String type

Android 手持PDA读取SD卡中文件

近两年市场上很多Wince设备都开始转向Android操作系统,最近被迫使用Android开发PDA手持设备.主要功能是扫描登录,拣货,包装,发货几个功能.其中涉及到商品档的时候大概有700左右商品要导入到Android设备中,因为现场操作环境没有WiFi ,所以商品档不能直接访问服务,将商品档记录到txt文件中. 一. 将txt文件存放到SD开中 将商品档编辑成为txt文件然后拷贝到SD卡中,当然也可以存储其他的数据格式,甚至可以使用Sqlite来存储,这里没有这个必要所以就直接使用txt 二

Android文件存储往SD卡中写入文件路径出错问题求解。

============问题描述============   因为学习需要  看的老罗的视频  关于数据存储往SD卡写文件的那一部分  几乎完全照办的敲的代码   结果在pad上测试的时候和预想的有区别     本来应该存储到SD卡中的文件结果跑到pad自带内存中去了...   然后我尝试过把路径直接自己手动写  还是一样存到了自带内存中  这到底是为什么啊? 顺带吐槽一下万恶的导师  十一还要我们加班 求大神们指导呀~   国庆节玩的开学哟!!! ============解决方案1======

Android开发 将数据保存到SD卡

前言: 使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的.对于像视频这样的大文件,我们可以把它存放在SDCard. SDCard是干什么的?你可以把它看作是移动硬盘或U盘. 在模拟器中使用SDCard,你需要先创建一张SDCard卡(当然不是真的SDCard,只是镜像文件).创建SDCard可以在Eclipse创建模拟器时随同创建,也可以使用DOS命令进行创建,如下: