Android 创建文件,删除文件,加载本地txt文件,string转txt文件,创建文件夹,读取文件夹,open failed: ENOENT

  private synchronized void writeLogToFile(String message) {
            if (TextUtils.isEmpty(message)) {
                return;
            }
            try {
                String fileName = "log_" + dateFormat.format(new Date()) + ".txt";
                File logFile = new File(logDir, fileName);
                FileWriter writer = new FileWriter(logFile, true);
                writer.append(message);
                writer.append('\n');
                writer.flush();
                writer.close();
            } catch (IOException e) {
                Log.e(TAG, "Failed to write log to file", e);
            }
        }

android:requestLegacyExternalStorage="true"
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
       tools:ignore="ProtectedPermissions"/>

1、创建文件

String fileName = "my.txt";
File fs = new File(Environment.getExternalStorageDirectory() + "/msc/" + fileName);

安卓10内存文件 

String downFileDir = context.getFilesDir().getAbsolutePath();
File dest = new File(downFileDir, tempName);

msc可要可不要   或者是"/"

创建图片文件

final File file = File.createTempFile(UUID.randomUUID().toString() + "", ".jpg");

2、删除文件

                String ss = "/mnt/sdcard/my.txt";
//                String ss = "/storage/emulated/0/Pictures/Screenshots/Screenshot_20190814-141238.jpg";
                File file = new File(ss);
                if (file.exists()){
                file.delete();
                }

 /mnt/sdcard/     等于   /storage/emulated/0/

3、string转为本地txt文件

String fileName = "my.txt";
File fs = new File(Environment.getExternalStorageDirectory()+"/"  + fileName);
if (fs.exists()){
    fs.delete();
}
String charset = "UTF-8";
// 写字符换转成字节流
try {
    FileOutputStream outputStream = new FileOutputStream(fs);
    OutputStreamWriter writer = new OutputStreamWriter(
            outputStream, charset);
    try {
        writer.write("这是要保存的中文字符aaabbbb大范围sdfsdfsf");
    } finally {
        writer.close();
    }

} catch (IOException e) {
    e.printStackTrace();
}

文件夹不存在时——open failed: ENOENT (No such file or directory)。解决方法----创建文件夹即可

if (fs.exists()){
    fs.delete();
}else {
    fs.getParentFile().mkdirs();
}

4、读取本地txt文件,转为string

String fname = "/mnt/sdcard/my.txt";
private String loadTXTFromSDFile(String fname) {
    String result=null;
    try {
        File f=new File(fname);
        int length=(int)f.length();
        byte[] buff=new byte[length];
        FileInputStream fin=new FileInputStream(f);
        fin.read(buff);
        fin.close();
        result=new String(buff,"UTF-8");
    }catch (Exception e){
        e.printStackTrace();
    }
    return result;
}

5、创建文件夹

// 文件存储
private File updateDir = null;
// 创建文件
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
    updateDir = new File(Environment.getExternalStorageDirectory(), "data/cn.dlc.xiaoyao/msc2");
    if (!updateDir.exists()) {
        updateDir.mkdirs();
        LogPlus.i("lgq","bbh-ss-video_savePath--333-  ");
    }
}

6、读取文件夹内容 

File sceneFile = new File(Environment.getExternalStorageDirectory(), "data/cn.dlc.xiaoyao/msc1");
LogPlus.i("lgq","bbh-ss-video_savePath---  "+sceneFile.exists());

File[] files = sceneFile.listFiles();

if (null != files) {

    for (int i = 0; i < files.length; i++) {

        LogPlus.e("lgq文件夹下的文件:" + files[i].getName()+"......"+files[i].getPath()+"..."+getAudioFileVoiceTime(files[i].getPath()));

    }

}

    /**
     * 删除旧的文件
     */
    public static void deleteOldestLogFile(File logDir) {
        File[] logFiles = logDir.listFiles();
        if (logFiles != null && logFiles.length > 3) {
            Arrays.sort(logFiles, new Comparator<File>() {
                @Override
                public int compare(File f1, File f2) {
                    return Long.compare(f2.lastModified(), f1.lastModified());
                }
            });

            // 保留最新的三个日志文件,删除其他的文件
            for (int i = 2; i < logFiles.length; i++) {
                File fileToDelete = logFiles[i];
                if (!fileToDelete.delete()) {
                    Timber.tag(TAG).e("Failed to delete log file: %s", fileToDelete.getAbsolutePath());
                }
            }
        }

    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值