创建内外部文件

创建内部文件or文件夹 /data/data/包名/files/xxx

1.创建内部的文件夹 /data/data/包名/files/xxxdir

1.parent 表示内部路径为:/data/data/包名/files

 //创建内部不同的文件                       
 public FileOutputStream createInternalFile(String filename, File  parent) throws IOException{                              
                                        //参数1:文件名 // 参数2:path:/data/data/包名/files/ 
        // 1,/data/data/包名/files/yyy
        // 2,/data/data/包名/files/xxx/yyy
        File newFile = null;

        if(parent == null)     
        {    
            //如果路径不存在就创建,在path为:/data/data/包名/files 创建一个文件为filename.
            foutstream = mContext.openFileOutput(filename, Context.MODE_PRIVATE);
        }else{
            //parent的路径为/data/data/包名/files/
            String path = parent.getAbsolutePath() + "/" + filename; //获取内部默认文件路径
            newFile = new File(path);         //引用一个File的对象
            if(!newFile.exists()){
                newFile.createNewFile();     //创建路径为path的文件
            }

            foutstream = new FileOutputStream(newFile);  //令文件为写的字符流
        }

        return foutstream;       //返回文件为写的字符流

    }

2.创建内部的文件夹 /data/data/包名/files/xxxdir

    public File creatInternalDir(String dirName){
        //2,/data/data/包名/files/xx

        //获取到内部文件默认的存储的路径
        File interalfile = mContext.getFilesDir();
        String path = interalfile.getAbsolutePath();

        File  newDir = new File(path + "/" + dirName);
        //File newDir = new File(interalfile, dirName);

        if(!newDir.exists())
            newDir.mkdir();

        return newDir;
    }

3.另个Activity中

   EditText et_input_area = (EditText) findViewById(R.id.et_input_area);

   FileOperation fop    = new FileOperation(QueryActivity.this);   //引用一个类
   public void onClick(View v) {
        //保存
        //获取到输入框的内容
        String content = et_input_area.getText().toString();

        if(!content.isEmpty()){
            // 创建note目录 /data/data/包/files/note
            File noteParent = fop.creatInternalDir("note");      
            FileOutputStream fout = null;
            try {
                //1.创建文件 /data/data/包/files/note/mynote1.txt
                //2.并返回mynote1.txt为写的文件流
                fout = fop.createInternalFile("mynote1.txt", noteParent);
                fout.write(content.getBytes()); //使输入框的内容以字节流的形式输入到fout文件中
                fout.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            //吐丝
            Toast.makeText(this, "保存文件成功:" + noteParent.getAbsolutePath(), 1000).show();

        }

创建外部文件 /data/data/包名/files/xxx.txt

———————————————————————————-

//在外部存储空间中创建一个文件夹和文件
    public File createExternalFile(String filename) throws IOException{
        File newFile = null;  
        //判断sd开是否存在
        String state = Environment.getExternalStorageState();

        if(state.equals(Environment.MEDIA_MOUNTED)){
            Toast.makeText(mContext, "sd准备好了", 1000).show();
            //获得外部存储器的第一层的文件对象                         
            File downloadFile    
    =Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);

            if(!downloadFile.exists())
                downloadFile.mkdir();
            //创建文件
            String path = downloadFile.getAbsolutePath() + "/" + filename; 

            newFile = new File(path);
            if(!newFile.exists()){
                newFile.createNewFile();
                // newFile.mkdir(); //当成文件夹也可以
            }

        }else{
            //System.out.println("sd没有准备好");
            Toast.makeText(mContext, "sd没有准备好", 1000).show();
        }

        return newFile;

    }
-------------------------------------------------------------------------------------------------------------
2.另一个Activity中

// 演示如何在外部存储空间写文件/mnt/sdcard/Download
    File file  = fop.createExternalFile("mydown.c");

注意:Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); 中填的参数
DIRECTORY_ALARMS //警报的铃声
DIRECTORY_DCIM //相机拍摄的图片和视频保存的位置
DIRECTORY_DOWNLOADS //下载文件保存的位置
DIRECTORY_MOVIES //电影保存的位置, 比如 通过google play下载的电影
DIRECTORY_MUSIC //音乐保存的位置
DIRECTORY_NOTIFICATIONS //通知音保存的位置
DIRECTORY_PICTURES //下载的图片保存的位置
DIRECTORY_PODCASTS //用于保存podcast(博客)的音频文件
DIRECTORY_RINGTONES //保存铃声的位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值