android操作文件,保存在手机自带存储上和保存在SD卡上

1.File(文件保存)
    private Context context;//上下文
    public FileService(Context context) {
        this.context = context;
    }
    /**
     * 保存文件(保存在手机自带内存中)
     * @param filename文件名称
     * @param content文件内容
     * @throws FileNotFoundException
     */
    public void save(String filename,String content) throws Exception{
        //私有操作模式:创建出来的文件只能呗本应用访问,其他应用无法访问该文件,另外采用私有操作模式创建的文件,写入的内容会覆盖源文件的内容
        FileOutputStream outStream=context.openFileOutput(filename, Context.MODE_PRIVATE);//文件的名称;
        outStream.write(content.getBytes());
        outStream.close();
    }
    /**
     * 读取文件内容
     * @param filename文件名称
     * @return 文件内容
     * @throws Exception
     */
    public String read(String filename) throws Exception{
        FileInputStream inStream=context.openFileInput(filename);
        ByteArrayOutputStream outStream=new ByteArrayOutputStream();
        byte[] buffer=new byte[1024];
        int len=0;
        while((len=inStream.read(buffer))!=-1){
            outStream.write(buffer, 0, len);
        }
        byte[] data=outStream.toByteArray();
        return new String(data);
    }
    /**
     * 将文件保存在SD卡上
     * @param filename
     * @param content
     * @throws Exception
     */
    public void saveToSDCard(String filename,String content)throws Exception{
        //获取SD卡的路径:Environment.getExternalStorageDirectory()
        File file=new File(Environment.getExternalStorageDirectory(), filename);
        FileOutputStream outStream=new FileOutputStream(file);
        outStream.write(content.getBytes());
        outStream.close();
    }
    /**
     * 读取SD卡中的文件
     * @param filename 文件名称
     * @return 文件内容
     * @throws Exception
     */
    public String readToSDCard(String filename)throws Exception{
        //获取SD卡中的文件
        StringBuffer sb=new StringBuffer();
        FileInputStream inStream=new FileInputStream(new File(Environment.getExternalStorageDirectory()+"/"+filename));
        ByteArrayOutputStream outStream=new ByteArrayOutputStream();
        int len=0;
        while((len=inStream.read())!=-1){
            sb.append((char)len);
        }
        outStream.close();
        inStream.close();
        return sb.toString();
    }
文件的操作模式:
Context.MODE_PRIVATE:私有操作模式:创建出来的文件只能呗本应用访问,其他应用无法访问该文件,另外采用私有操作模式创建的文件,写入的内容会覆盖源文件的内容
Context.MODE_APPEND:追加操作模式,该模式会检查文件是否存在,如果存在文件就追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取,但是不能被其他应该写入
Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入,但是不能被其他应用读取
如果希望文件被其他应用读和写,可以传入context.openFileOutput(filename,Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);

Activity提供的两个API:
getCacheDir();该方法可以获取/data/data/<package name>/cache目录,在做应用时可以把缓存的文件保存在这个文件夹
getFilesDir();该方法可以获取/data/data/<package name>/files目录,在做应用时可以把要存储的文件保存在这个文件夹,只适合保存较小的文件,打文件建议保存在SD卡上。

<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值