Android【File文件存储工具类】

Android【File文件存储工具类】

最近写项目用到了文件存储,当需要频繁的存储操作的时候,文件存储性能方面远大于SharedPreferences 。

工具类复制可用

public class FileUtils {

// 将字符串写入到文本文件中
public static void writeTxtToFile(String strcontent, String filePath, String fileName) {

//生成文件夹之后,再生成文件,不然会出错
makeFilePath(filePath, fileName);
String strFilePath = filePath + fileName;
// 每次写入时,都换行写
String strContent = strcontent + "\n";
try {

File file = new File(strFilePath);
if (!file.exists()) {

Log.d("TestFile", "Create the file:" + strFilePath);
file.getParentFile().mkdirs();
file.createNewFile();
}
RandomAccessFile raf = new RandomAccessFile(file, "rwd");
raf.seek(file.length());
raf.write(strContent.getBytes());
raf.close();
} catch (Exception e) {

ToastUtils.show("请检查存储权限");
}
}
//生成文件
public static File makeFilePath(String filePath, String fileName) {

File file = null;
makeRootDirectory(filePath);
try {

file = new File(filePath + fileName);
if (!file.exists()) {

file.createNewFile();
}
} catch (Exception e) {

e.printStackTrace();
}
return file;
}
//生成文件夹
public static void makeRootDirectory(String filePath) {

File file = null;
try {

file = new File(filePath);
if (!file.exists()) {

file.mkdir();
}
} catch (Exception e) {

Log.i("error:", e + "");
}
}
//读取指定目录下的所有TXT文件的文件内容
public static String getFileContent(File file) {

String content = "";
if (!file.isDirectory()) {
  //检查此路径名的文件是否是一个目录(文件夹)
if (file.getName().endsWith("txt")) {
//文件格式为""文件
try {

InputStream instream = new FileInputStream(file);
if (instream != null) {

InputStreamReader inputreader
= new InputStreamReader(instream, "UTF-8");
BufferedReader buffreader = new BufferedReader(inputreader);
String line = "";
//分行读取
while ((line = buffreader.readLine()) != null) {

content += line + "";
}
instream.close();//关闭输入流
}
} catch (java.io.FileNotFoundException e) {

Log.d("TestFile", "The File doesn't not exist.");
} catch (IOException e) {

Log.d("TestFile", e.getMessage());
}
}
}
return content;
}
public static void DeleteFile(String path) {

File file = new File(path);
if (file.exists()) {

file.deleteOnExit();
}
}
public static void updateText(String strcontent, String filePath, String fileName) {

makeFilePath(filePath, fileName);
String strFilePath = filePath + fileName;
String strContent = strcontent;
try {

File file = new File(strFilePath);
if (!file.exists()) {

file.getParentFile().mkdirs();
file.createNewFile();
}
//写入的txt文档的路径
PrintWriter pw = new PrintWriter(strFilePath);
//写入的内容
pw.write(strContent);
pw.flush();
pw.close();
} catch (Exception e) {

ToastUtils.show("请检查存储权限");
}
}
/** * 读取changedata请求的id * @return 请求的id */
public static String getXctId() {

String id = getFileContent(new File("/sdcard/xct/id.txt"));
return TextUtils.isEmpty(id) ? "0" : id;
}
/** * 保存changedata的id * @param id */
public static void saveId(String id) {

updateText(id, "/sdcard/xct/", "id.txt");
}
/** * 保存广告 * @param advertStr */
public static void saveAdvert(String advertStr){

updateText(advertStr, "/sdcard/xct/", "advert.txt");
}
/** * 读取广告数据 * @return */
public static String getAdvert() {

String advert = getFileContent(new File("/sdcard/xct/advert.txt"));
return advert==null? "":advert;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/2813.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • threadlocal底层实现_hashset底层实现原理

    threadlocal底层实现_hashset底层实现原理ThreadLocal作用:提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂性。package com.mupack;public class App{ private String content; public void setContent(String content) { this.content = content; } public Stri

  • 聊聊LuaJIT「建议收藏」

    聊聊LuaJIT「建议收藏」JIT什么是JITJIT=JustInTime即时编译,是动态编译的一种形式,是一种优化虚拟机运行的技术。程序运行通常有两种方式,一种是静态编译,一种是动态解释,即时编译混合了这二者。Ja

  • 前端组件库_前端组件库有什么好处

    前端组件库_前端组件库有什么好处0.前端自动化(Workflow)前端构建工具Yeoman–asetoftoolsforautomatingdevelopmentworkflowgulp–Thestr

  • 玩玩webgame开发(2):人物移动与战争迷雾实现

    玩玩webgame开发(2):人物移动与战争迷雾实现惯例,先上下效果图片:[img]/upload/attachment/47613/3b8e0d31-b9cc-3272-abbb-0941300a68ef.png[/img]在上一篇玩玩webgame开发(1)大概给出了jquery方式的地图实现,最近又做了一些改进,加进了更多元素。代码全部改成jquery插件的方式。有机会做专门的介绍。这次的主题主要是地图上面人物的移动以及战…

  • goland 最新激活码(破解版激活)「建议收藏」

    goland 最新激活码(破解版激活),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • java学生宿舍管理系统,来了就点个赞再走呗,即将毕业的兄弟有福了

    java学生宿舍管理系统,来了就点个赞再走呗,即将毕业的兄弟有福了引言:上次写了一个学生成功管理系统,有个老铁说不会运行,我答应给他写一个项目,并且附上运行的文档,于是这几天就利用摸鱼时间、晚上休息时间、中午午休时间写了这个宿舍管理系统,从表的设计和代码的编写都是自己弄的,数据库用mysql,web容器用tomcat,开发工具用eclipse\myeclipse,java方面入口都是用servlet,数据库连接用c3p0,总之都是用到比较基础的东西来写的,简单易懂,对于正在做毕业设计和刚入门时间不长的兄弟们来说,应该是比较好的学习代码了,希望对大家有所帮助。一张

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号