大过年的,不下班的,上个Android文件操作类(内部存储和sd卡均可)
2014-01-28 16:18
369 查看
package com.kkdiangame.UI.res; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import android.content.Context; import android.os.Environment; public class FileUtils { private String SDPATH; public String getSDPATH() { return SDPATH; } public FileUtils() { // 得到当前外部存储设备的目录 // /SDCARD SDPATH = Environment.getExternalStorageDirectory() + "/"; } /** * 在SD卡上创建文件 * * @throws IOException */ public File creatSDFile(String fileName) throws IOException { File file = new File(SDPATH + fileName); file.createNewFile(); return file; } /** * 在SD卡上创建目录 * * @param dirName */ public File creatSDDir(String dirName) { File dir = new File(SDPATH + dirName); dir.mkdir(); return dir; } /** * 判断SD卡上的文件夹是否存在 */ public boolean isFileExist(String fileName) { File file = new File(SDPATH + fileName); return file.exists(); } /** * 将一个InputStream里面的数据写入到SD卡中 */ public File write2SDFromInput(String path, String fileName, InputStream input) { File file = null; OutputStream output = null; try { creatSDDir(path); file = creatSDFile(path + fileName); output = new FileOutputStream(file); byte buffer[] = new byte[4 * 1024]; while ((input.read(buffer)) != -1) { output.write(buffer); } output.flush(); } catch (Exception e) { e.printStackTrace(); } finally { try { output.close(); } catch (Exception e) { e.printStackTrace(); } } return file; } /** * 将一个String里面的数据写入到SD卡中 */ public File write2SDFromInput(String path, String fileName, String input) { File file = null; OutputStream output = null; try { creatSDDir(path); file = creatSDFile(path + fileName); output = new FileOutputStream(file); output.write(input.getBytes()); output.flush(); } catch (Exception e) { e.printStackTrace(); } finally { try { output.close(); } catch (Exception e) { e.printStackTrace(); } } return file; } /* * 写入到内部存储,只需要传文件名如:a.html * */ public void write2InnerStorage(String path, String str, Context context) { try { File file = context.getDir(path, Context.MODE_PRIVATE); file.mkdirs(); // // FileOutputStream fos = // context.getApplicationContext().openFileOutput(path,Context.MODE_PRIVATE); // fos.write(str.getBytes()); // fos.flush(); // fos.close(); file = new File(context.getFilesDir(), path); FileOutputStream fos = new FileOutputStream(file); fos.write(str.getBytes()); fos.flush(); fos.close(); } catch (Exception e) { e.printStackTrace(); } } /* * 从内部存储读取,只需要传文件名如:a.html * */ public String readInnerFile(String path, Context context) { try { FileInputStream fis = context.openFileInput(path); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] data = new byte[1024]; int len = -1; while ((len = fis.read(data)) != -1) { baos.write(data, 0, len); } return new String(baos.toByteArray()); } catch (Exception e) { e.printStackTrace(); } return ""; } }
项目是原生代码和html js相互调用,而且要弄成lib项目,
lib项目可以打包assets,但是无法调用;于是我保存成字符串,然后写到sd卡,loadurl(sd卡位置)这样可以;但是可能有人没有sd卡;于是想到写到内部卡;
找了好多代码都不对,终于。。。对了。
相关文章推荐
- 大过年的,不下班的,上个Android文件操作类(内部存储和sd卡均可)
- Android中获取文件存储位置(内部存储或者扩展SD卡)
- Android手机数据读写方法(内部存储、SD卡,网络加载,包内文件读取)
- 从头学android_内部存储空间和sd卡文件读写操作
- Android 内部存储安装apk文件实现
- Android上的内部存储(文件)实现
- [Android]文件存储-内存(系统存储)/内部存储(内置存储卡)/外部存储(SDcard)
- Android 内部存储文件读写权限
- 【转】 android中的文件操作详解以及内部存储和外部存储
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
- android操作文件,保存在手机自带存储上和保存在SD卡上
- Android 数据存储方式(一.文件+内部外部存储吐血详解)
- Android本地文件存储,机身和外置sd卡
- 把android assets文件夹内的文件存储到sd卡中
- Android 在内部存储读写文件
- Android自学笔记-8-Android数据存储1:文件、SharedPreferences和获取sd卡信息
- Android——FileOutputStream与openFileOutput()的区别分析【第一个用于文件存储,第二个用于SD卡存储】【转】
- (转)【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- Android——数据存储(课堂代码整理:SharedPreferences存储和手机内部文件存储)
- Android往SD卡上存储文件