第一个小应用:图片浏览器 之一 学习怎么操作文件

项目描述:
图片浏览器启动后显示一个界面,
1.界面上有一个按钮,点击按钮后会显示一个对话框,可以选择自己的图片浏览器或者系统自带的浏览器。
2.打开模拟器上的浏览器,从网络上下载一个图片,当下载完成后,下拉顶部状态栏,点击下载的图片,弹出一个对话框,可以选择自己的图片浏览器或者系统自带的浏览器

主要用到的技术包括:

隐式Intent

系统权限

文件读取、SD卡读取


先不要着急,我们一步一步来,先把知识点理清楚,然后循序渐进的做出这个应用来

一、首先来学习怎么操作文件,这部分内容主要包括:
1.创建文件、删除文件、重命名文件
2.创建文件夹、删除文件夹

先定义一个类,主要存储文件或者文件夹的名字
public class FileUtil {
    //文件名
    public static final String FILE_NAME = "myfile.txt";
//文件夹名
    public static final String FOLDER_NAME = "NewFolder";
    //多个层次的文件夹   不能使用 /  去分隔,而要使用  File.separator File类提供的分隔符去分隔
    public static final String FOLDERS_NAME = "NewFolder" + File.separator + "Subfolder";
    //直接去创建多个层级文件夹
    public static final String FOLDERS_NAME_TEST = "NewFolder2" + File.separator + "Subfolder2";
}
1.创建文件的示例代码: file.createNewFile()
public class CreateMyFile {
    public static void main(String[] args){
        //创建一个文件对象,括号中是文件名,可以是全路径名,也可以是只写个文件名(这时候文件被创建到当前工程的根目录下)
        File file = new File(FileUtil.FILE_NAME);
        //创建文件,如果这个文件存在我们就没必要创建了,所以需要判断一下
        if (!file.exists()){
            //如果不存在该文件就创建
            try {
                file.createNewFile();
                System.out.println("文件已经被创建,文件名是" + file.getName());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }else {
            //文件已经存在
            System.out.println("文件已经存在,文件名是" + file.getName());
            //输出该文件的一些信息
            System.out.println("文件名是: " + file.getName());
            System.out.println("文件的绝对路径是: " + file.getAbsolutePath());
            System.out.println("文件的相对路径是: " + file.getPath());
            System.out.println("文件中的字节数是: " + file.length());
            System.out.println("文件是否可执行: " + file.canExecute());
            System.out.println("文件是否可读: " + file.canRead());
            System.out.println("文件是否可写: " + file.canWrite());
            System.out.println("文件是否隐藏: " + file.isHidden());
        }
    }
}
2.文件删除   file.delete()   
public class DeleteMyFile {
    public static void main(String[] args){
        File file = new File(FileUtil.FILE_NAME);
        //如果文件存在就删除
        if (file.exists()){
            //执行删除操作,需要注意的是,文件不为空,执行这个删除是直接删除的,可以先做备份
            file.delete();
            System.out.println("文件已经被删除");
        }
    }
}
3.重名名文件  file.renameTo(file1)
public class RenameMyFile {
    public static void main(String[] args){
        File file = new File(FileUtil.FILE_NAME);
        File newFile = new File("another.txt");
        if (file.exists()){
            //这里只是修改了文件的名字,如果重命名前文件已经有内容了,还是只更新名字
            file.renameTo(newFile);
            //注意,对象名不会更改
            System.out.println("文件的名字: " + file.getName());
        }
    }
}
4.创建文件夹 和 多级目录    folder.mkdir()  
public class CreateMyFolder {
    public static void main(String[] args){
    //public static final String FOLDER_NAME = "NewFolder";
        File folder = new File(FileUtil.FOLDER_NAME);
        if (!folder.exists()){
            //创建目录,可不是使用  file.createNewFile()方法哦
            //创建一个目录
            folder.mkdir();
        }else{//如果第一层目录存在了,就去创建第二层目录
            // public static final String FOLDERS_NAME = "NewFolder" + File.separator + "Subfolder";
            File secFolder = new File(FileUtil.FOLDERS_NAME);
            secFolder.mkdir();
        }
    }
}
需要注意的是,mkdir()一次只能创建一个文件夹,如果直接去创建多层级的目录就会不成功,这个时候就要用到我们的   mkdirs() 了,所以,我们推荐使用mkdirs()
5.使用mkdirs()  创建多层级目录
public class CreateMyFolders {
    public static void main(String[] args){
        File folders = new File(FileUtil.FOLDERS_NAME_TEST);
        if (!folders.exists()){
            //直接创建层级目录
            folders.mkdirs();
            System.out.println("创建成功");
        }
    }
}
6.删除文件夹   
public class RemoveMyFolder {
    public static void main(String[] args){
        File folder = new File(FileUtil.FOLDERS_NAME_TEST);
        if (folder.exists()){
            folder.delete();
            System.out.println("删除成功");
        }
    }
}
对于删除文件夹而言:
1. 如果FileUtil.FOLDERS_NAME_TEST = "1" + File.separator + "2"      1,2都是空文件夹,那么只删除2目录
2.     如果目录是1/2   FileUtil.FOLDERS_NAME_TEST = "1"     删除不成功,因为1下面有文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>