• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 【方法总结】创建、读取、删除文件相关操作,读取删除文件

【方法总结】创建、读取、删除文件相关操作,读取删除文件

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了读取文件的方法,java中读取文件的方法,创建文件夹的方法,创建文件的方法,文件共享的方法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

【方法总结】创建、读取、删除文件相关操作,读取删除文件


 总结一波文件操作相关的共通方法(拿来就用)

 需要申请的权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

 1.获取文件夹下的所有文件名

public static List<String> getFileName(String fileName) {
    List<String> fileList = new ArrayList<>();
    File file = new File(fileName);
    if (!file.exists()) {
        return null;
    }
    File f[] = file.listFiles();
    for (int i = 0; i < f.length; i++) {
        File fs = f[i];
        if (!fs.isDirectory()) {
            fileList.add(fs.getName());
        }
    }
    return fileList;
}

 

 2.在SD卡上创建文件

public static File createFile(String fileName) throws IOException {
    File file = new File(fileName);
    if (!isFileExists(file)) {
        if (file.isDirectory()) {
            file.mkdirs();
        } else {
            file.createNewFile();
        }
    }
    return file;
}

 

 3.在SD卡上创建文件夹

public static File createFolder(String fileName) throws IOException {
    File file = new File(fileName);
    if (!isFileExists(file)) {
        file.mkdirs();
    }
    return file;
}

 

 4.读取SD卡中文本文件

public synchronized static String readFile(String fileName) {
    StringBuffer sb = new StringBuffer();
    File file = new File(fileName);
    String str = null;
    try {
        InputStream is = new FileInputStream(file);
        InputStreamReader isr = new InputStreamReader(is, "UTF-8");
        @SuppressWarnings("resource")
        BufferedReader reader = new BufferedReader(isr);
        while ((str = reader.readLine()) != null) {
            sb.append(str);
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return sb.toString();
}

 

 5.删除单个文件

public static boolean deleteFile(String filePath) {
    File file = new File(filePath);
    if (file.isFile() && file.exists()) {
        return file.delete();
    }
    return false;
}

 filePath 被删除文件的文件名

 return 文件删除成功返回true,否则返回false。

 

 6.删除文件夹以及其目录下的文件

public static boolean deleteFolder(String filePath) {
    boolean flag = false;
    // 如果filePath不以文件分隔符结尾,自动添加文件分隔符
    if (!filePath.endsWith(File.separator)) {
        filePath = filePath + File.separator;
    }
    File dirFile = new File(filePath);
    if (!dirFile.exists() || !dirFile.isDirectory()) {
        return false;
    }
    flag = true;
    File[] files = dirFile.listFiles();
    // 遍历删除文件夹下的所有文件(包括子目录)
    for (File file : files) {
        if (file.isFile()) {
            // 删除子文件
            flag = deleteFile(file.getAbsolutePath());
            if (!flag)
                break;
        } else {
            // 删除子目录
            flag = deleteFolder(file.getAbsolutePath());
            if (!flag)
                break;
        }
    }
    if (!flag)
        return false;
    // 删除当前空目录
    return dirFile.delete();
}

 filePath 被删除目录的文件路径
 return 目录删除成功返回true,否则返回false

 

 7.把文件转换成Base64

public static String encodeBase64File(String path) throws Exception {
    byte[] videoBytes;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    @SuppressWarnings("resource")
    FileInputStream fis = new FileInputStream(new File(path));
    byte[] buf = new byte[1024];
    int n;
    while (-1 != (n = fis.read(buf))) {
        baos.write(buf, 0, n);
    }
    videoBytes = baos.toByteArray();
    return Base64.encodeToString(videoBytes, Base64.NO_WRAP);
}

 

 8.根据相册媒体库路径转换成SD卡路径(Android 4.4以上)

@TargetApi(Build.VERSION_CODES.KITKAT)
public static String getPath(final Context context, final Uri uri) {
    final boolean isOverKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
    // DocumentProvider
    if (isOverKitKat && DocumentsContract.isDocumentUri(context, uri)) {
        // ExternalStorageProvider
        if (isExternalStorageDocument(uri)) {
            final String docId = DocumentsContract.getDocumentId(uri);
            final String[] split = docId.split(":");
            final String type = split[0];
            if ("primary".equalsIgnoreCase(type)) {
                return Environment.getExternalStorageDirectory() + "/"
                        + split[1];
            }
        }
        // DownloadsProvider
        else if (isDownloadsDocument(uri)) {
            final String id = DocumentsContract.getDocumentId(uri);
            


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 【方法总结】创建、读取、删除文件相关操作,读取删除文件

相关文章

  • 2017-05-26输入法出现时,局部上移的代码,输入法上移
  • 2017-05-26安卓下如何使用JUnit进行软件测试,安卓junit
  • 2017-05-227.1.3 Android HTTP请求方式:HttpURLConnection
  • 2017-05-26读《重构手册》-重构之姊妹篇有感,《重构手册》姊妹篇
  • 2017-05-26初识genymotion安装遇上的VirtualBox问题,genymotionvirtualbox
  • 2017-05-26A DB2 Performance Tuning Roadmap --LOG INTRODUCTION
  • 2017-05-26《转》深入理解Activity启动流程(一)–Activity启动的概要流程,《转》activity
  • 2017-05-224.5.1 Intent的基本使用
  • 2017-05-26Android的系统体系结构,android体系结构
  • 2017-05-26Android 实用代码片段,

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android的基本世界观——系统简介,组件逻辑及其他
    • Android下拉刷新上拉加载更多的扩展ListView
    • Android蓝牙技术Bluetooth初体验
    • 2.3.8 SeekBar(拖动条)
    • Android解析json数据,android解析json
    • Kotlin的属性委托:无上下文情况下Android的赋值(KAD 15),kotlinandroid
    • Android的bitmap和优化,androidbitmap
    • 8.1.3 Android中的13种Drawable小结 Part 3
    • 回收ImageView占用的图像内存,imageview占用图像
    • Android 手机卫士--参照文档编写选择器,android选择器

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有