搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Monodyee
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【LeetCode热题100】236. 二叉树的最近公共祖先(二叉树)
2
鉴权管理系统(JWT技术架构)——SpringBoot2+Vue2(一定惊喜满满,万字长文)_springboot+jwt+vue基础框架
3
java jolt_java – Jolt条件规范
4
每日面经分享(Spring Boot: part2 DAO层)
5
GPT(Generative Pre-Training)论文解读及源码实现(二)_gptids
6
JSON解析的几种方式_json数组解析
7
计算机专业顶级学术会议
8
AI大模型应用入门实战与进阶:AI大模型在历史数据分析中的应用_大模型中的历史数据怎么用
9
PaddleOCR #使用PaddleOCR进行光学字符识别(PP-OCR文本检测识别)_ppocr
10
算法学习系列(MCMC):马尔可夫链和蒙特卡洛方法_马尔可夫链蒙特卡罗解决反问题
当前位置:
article
> 正文
Android基础:数据存储(一):文件存储的工具类UtilsFile_android 文件保存util
作者:Monodyee | 2024-03-26 19:42:14
赞
踩
android 文件保存util
package com.example.fileutils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import android.content.Context;
import android.os.Environment;
public class UtilsFile {
/**
* SD卡的状态
*/
public static final String SDCARDSTATE = Environment.getExternalStorageState();
/**
* 文件在SD卡中存储的根路径
*/
public static final String SDCARDPATH = Environment.getExternalStorageDirectory().getPath();
/**
* 获取包名下files的路径
* @param context
* @return 包名/files
*/
public static String getFilePath(Context context){
return context.getApplicationContext().getFilesDir().getPath();
}
public static String getCahePath(Context context){
return context.getApplicationContext().getCacheDir().getPath();
}
/**
* 保存文件
* @param data 数据内容
* @param path 绝对路径
* @param fileName 文件名
* @return true 保存成功,false 保存失败
*/
public static boolean saveFile(String data,String path,String fileName){
File file = new File(path);
if (!file.exists()) {
file.mkdirs();
}
file = new File(file, fileName);
try {
FileOutputStream out = new FileOutputStream(file);
out.write(data.getBytes());
out.flush();
out.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 读取文件
* @param path
* @return
*/
public static String readFile(String path) {
File file = new File(path);
if (!file.isFile()) {
try {
throw new Exception("it's not a file,please check!");
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
StringBuffer sb = new StringBuffer();
try {
FileInputStream in = new FileInputStream(file);
byte[] b = new byte[in.available()];
int read = in.read(b);
while (read != -1) {
sb.append(new String(b));
read = in.read(b);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
return null;
}
return sb.toString();
}
/**
* 删除路径下的:文件和文件夹,包括当前文件夹
* @param filepath :绝对路径
* @return true:删除成功,false:删除失败
* 注意:当前路径不存在时,也返回true
*/
public static boolean deletFile(String absoluteFilePath) {
File file = new File(absoluteFilePath);
try {
if(!file.exists()){
return true;
}
if (file.isFile()) {
file.delete();
return true;
}
if (!absoluteFilePath.endsWith(File.separator)){
absoluteFilePath = absoluteFilePath + File.separator;
}
if (file.isDirectory()) {
if (file.listFiles().length == 0) {
file.delete();
} else {
File[] files = file.listFiles();
for (File dirFile : files) {
deletFile(dirFile.getAbsolutePath());
}
}
file.delete();
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
public static boolean saveToCahe(String data,String dir,String fileName,Context context){
String path = getCahePath(context)+dir;
return saveFile(data, path, fileName);
}
public static String readFromCahe(String dir,Context context){
String path = getCahePath(context)+dir;
return readFile(path);
}
public static boolean deletInCahe(String dir,Context context){
String path = getCahePath(context)+dir;
return deletFile(path);
}
public static boolean clearCahe(Context context){
return deletFile(getCahePath(context));
}
/**
* 将文件保存到应用包名/files目录下
* @param data 要保存的内容
* @param dir 保存的相对路径,不包括文件名:"/myproject/function1/aa"
* @param fileName 文件名称:"1.txt"
* @return
*/
public static boolean saveToFile(String data,String dir,String fileName,Context context){
String path = getFilePath(context)+dir;
return saveFile(data, path, fileName);
}
/**
* 从应用包名/files目录下读取文件
* @param dir :"/dd/1.txt"
* @param context
* @return
*/
public static String readFromFile(String dir,Context context){
String path = getFilePath(context)+dir;
return readFile(path);
}
public static boolean deletInFile(String dir,Context context){
String path = getFilePath(context)+dir;
return deletFile(path);
}
/**
* 保存数据到SD卡上,
* @param String data:要保存的数据内容
* @param String dir:文件的相对路径,"/aa/bb"
* @param String fileName:文件名,"1.txt"
* @return boolean 是否保存成功,true保存成功,false保存失败
*/
public static boolean saveToSDCard(String data, String dir, String fileName) {
if (!Environment.MEDIA_MOUNTED.equals(SDCARDSTATE)) {
try {
throw new Exception("SDCard state error");
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
return saveFile(data, SDCARDPATH+dir, fileName);
}
/**
* @param String RelativePath 文件在sd卡中的路径:"/bb/dd/1.txt"
* @return String 文件内容
*/
public static String getFromSDCard(String dir) {
String path = SDCARDPATH + dir;
return readFile(path);
}
/**
* 从SD卡上删除文件
* @param path
* @return 是否删除文件成功
*/
public static boolean deletFileInSDCard(String path) {
return deletFile(SDCARDPATH + path);
}
}
声明:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop博客】
推荐阅读
article
Android
.mk 编译报错
undefined
reference
to
_
undefined
re...
当出现
undefined
reference
to
xxx时,对应的lib库已经添加到LOCAL_STATIC_LIB...
赞
踩
article
Android
带
html
标签文本添加自定义
超链接
跳转
...
这里主要做了一个简单的封装,关键点在于重写的onCLick方法,它的方法中则可以修改
超链接
的一些属性,比如字体颜色,下划...
赞
踩
article
Android
宠物
连连看
案例
_
仿动物
连连看
游戏界面使用
linearlayout
布局通过
案例
来演示...
[详细]
-->
赞
踩
article
毕业设计
-基于
Android
的
校园
新闻
APP(
Android
studio
毕业设计
,
Android
课...
2:
校园
新闻
:本模块主要是介绍在本校的网站上面关于
校园
新闻
的介绍,而本部分所针对的对象是所有人(包括了未登录的游客),用...
赞
踩
article
Android 13.0
kenel
和f
ram
eworks中
修改
ram
运行
内存
的功能实现...
在13.0的系统rom产品开发定制中,在对一些产品开发中的配置需求方面,在产品后续订单中,产品提出要提高硬件配置,但是硬...
赞
踩
article
Android
Studio
实现
图书馆
订座
系统_
androidstudio
图书馆
选
座位
app源码...
在校园生活中,
图书馆
是很多人选择的学习圣地,这里不仅充满书香气息,而且还十分静谧。这样的学习环境,必然会很抢手,导致很多...
赞
踩
article
Android
开源
组件
和
第三方
库
汇总
_
android
组件
汇总
网站...
Android
开源
组件
和
第三方
库
汇总
转载1、 github排名 https://github.com/trending...
赞
踩
article
Android
UI
框架之 X
UI
...
TextView、Button、EditText、ImageView、Spinner、Picker、Dialog、Pop...
赞
踩
article
Android
常用
的
UI 控件 和 对应
的
方法详细总结
_
android
seekbar
两头间距...
设计和代码切换,一般情况下,我们 UI 布局都是先拖再细调整,也就是先用设计默认拖出一个大概
的
布局,然后用代码来微调一、...
赞
踩
article
Android
ConstraintLayout
使用详解...
Android
ConstraintLayout
使用详解_android constraintlayoutandroi...
赞
踩
article
Android
ConstraintLayout
用法全解析...
ConstraintLayout
用法全解析文章目录
ConstraintLayout
用法全解析前言一、 什么是Cons...
赞
踩
article
腾讯
开源
的
Android
UI
框架——
QM
UI
Android
...
各位同学,早上好,我是你们的老朋友D_clock爱吃葱花,前些天忙着发版本,最近也在看各种各样的新知识,有好多东西想写啊...
赞
踩
article
android
studio
for
Mac
关于华为
手机
的真机
连接
_mac
android
stu...
android
studio
for
Mac
关于华为
手机
的真机
连接
step one:需要确保
手机
的Android版本不...
赞
踩
article
Android
Studio
WiFi
连接手机_
android
studio
wifi
连接华为鸿蒙...
使用一个插件即可,插件下载地址https://plugins.jetbrains.com/plugin/7983或者ht...
赞
踩
article
Android
UI
_androidui 框架...
Android
UI
框架 Activity、Fragment封装,支持状态栏修改、快速设置标题栏、设置空视图、内含轮播、...
赞
踩
article
Android
UI
框架概览...
Android
App真实的逻辑构成App
UI
构成层级结构在
Android
中绝大部分的
UI
组件都是存放在android...
赞
踩
article
MacOS
+
Android
Studio
通过 USB 数据线真机调试_
mac
版
android
...
MacOS
+
Android
Studio
通过 USB 数据线真机调试_
mac
版
android
studio
怎么与手...
赞
踩
article
Android
UI
框架
Android
UI
控件类简介
android5
大
布局
详解...
线性
布局
管理器(LinearLayout):点击打开链接表格
布局
管理器(TableLayout):点击打开链接帧
布局
管理...
赞
踩
article
Android
Studio
中创建
Android
虚拟机
并使用
虚拟机
调试HarmonyOS_andro...
在
Android
Studio
的工具栏中,选择您的虚拟设备作为目标设备,并点击"Run"(运行)按钮。通过按照以上步骤,...
赞
踩
article
android
studio
设备
调试
及
Logcat
查看_
android
studio
调试
时不跳转...
本文转载自:https://www.cnblogs.com/apaojun/p/4283944.html 作者:apao...
赞
踩
相关标签
android
Android.mk
html
前端
android-studio
java
开发语言
rom内存修改
运行内存
系统运行内存
mem
android studio
安卓app
课程设计
订座系统
Android
开源框架
ui