万能存储工具类SDCard存储 /data/data/存储 assets存储 raw存储

万能存储工具类 SDCard存储  /data/data/存储  assets存储
raw存储

粘贴过去就可以用了

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

<!-- SDCard中创建与删除文件权限 -->

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

<!-- 向SDCard写入数据权限 -->

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

package com.hexun.util;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.UnsupportedEncodingException;

import java.net.HttpURLConnection;

import java.net.URL;

import org.apache.http.util.EncodingUtils;

import android.annotation.SuppressLint;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.os.Environment;

import android.util.Log;

/**

* 保存图片的类

*

*

*/

public class FileUtil {

private final static String CACHE = "/image";

private final static String CHARSETNAME = "UTF-8";

/*************************** 从resource的raw中读取文件数据 *****************************************************/

/**

* raw中读取文件数据

*

* @param context

* @param fileName

*            R.raw.test

* @return String 文件内容

*/

public static String readRaw(Context context, int fileName) {

try {

// 得到资源中的Raw数据流

InputStream in = context.getResources().openRawResource(fileName);

return readInToStr(in);

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/*************************** 从resource的asset中读取文件数据 **************************************************/

/**

* asset中读取文件数据

*

* @param context

* @param fileName

*            文件名

* @return String 文件内容

*/

public static String readAssets(Context context, String fileName) {

try {

if (isNullEmptyBlank(fileName)) {

return null;

}

// 得到资源中的asset数据流

InputStream in = context.getResources().getAssets().open(fileName);

return readInToStr(in);

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/***************************** data/data/ *****************************************************************/

// MODE_PRIVATE 私有(只能创建它的应用访问) 重复写入时会文件覆盖

// MODE_APPEND 私有 重复写入时会在文件的末尾进行追加,而不是覆盖掉原来的文件

// MODE_WORLD_READABLE 公用 可读

// MODE_WORLD_WRITEABLE 公用 可读写

/**

* 写数据/data/data/

*

* @param context

* @param fileName

*            文件名

* @param str

*            数据内容

* @return 成功 false

*/

public static boolean saveDataStr(Context context, String fileName,

String writeStr) {

if (isNullEmptyBlank(fileName) || isNullEmptyBlank(writeStr)) {

try {

String path = context.getFilesDir().getAbsolutePath();

File file = new File(path, fileName);

if (file.exists()) {

file.delete();

}

OutputStream os = new FileOutputStream(file);

return saveOuToStr(writeStr, os);

} catch (Exception e) {

e.printStackTrace();

}

}

return true;

}

/**

* 读数据/data/data/

*

* @param context

* @param fileName

*            文件名

* @return String 文件内容

*/

public static String readDataStr(Context context, String fileName) {

if (isNullEmptyBlank(fileName)) {

try {

String path = context.getFilesDir().getAbsolutePath();

File file = new File(path, fileName);

if (file.exists()) {

InputStream in = new FileInputStream(file);

return readInToStr(in);

}

} catch (IOException e) {

e.printStackTrace();

}

}

return null;

}

/***************************** /data/data/图片 ************************************************************/

/**

* /data/data/存储图片

*

* @param context

* @param bitmap

* @param imageName

*            图片名

* @return 成功 false

*/

public static boolean saveDataImage(Context context, Bitmap bitmap,

String imageName) {

if (bitmap != null || isNullEmptyBlank(imageName)) {

try {

String path = context.getFilesDir().getAbsolutePath();

File file = new File(path, imageName);

if (file.exists()) {

file.delete();

}

OutputStream os = new FileOutputStream(file);

return saveOuToImage(bitmap, os);

} catch (IOException e) {

e.printStackTrace();

}

}

return true;

}

/**

* /data/data/读取图片

*

* @param context

* @param imageName

* @return Bitmap

*/

public static Bitmap readDataImage(Context context, String imageName) {

if (isNullEmptyBlank(imageName)) {

try {

String path = context.getFilesDir().getAbsolutePath();

File file = new File(path, imageName);

if (file.exists()) {

InputStream in = new FileInputStream(file);

return BitmapFactory.decodeStream(in);

}

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

return null;

}

/***************************** SDCard数据 *****************************************************************/

/**

* 写数据SDCard

*

* @param fileName

*            文件名

* @param writeStr

*            数据内容

* @return 成功 false

*/

public static boolean saveSDStr(String fileName, String writeStr) {

if (isNullEmptyBlank(fileName) || isNullEmptyBlank(writeStr)) {

try {

File file = new File(isExistsFilePath(), fileName);

if (file.exists()) {// 判读文件是否存在,存在读取

file.delete();

}

OutputStream os = new FileOutputStream(file);

return saveOuToStr(writeStr, os);

} catch (IOException e) {

e.printStackTrace();

}

}

return true;

}

/**

* 读取SDCard文件

*

* @param fileName

*            文件名

* @return String 文件内容

*/

@SuppressLint("SdCardPath")

public static String readSDStr(String fileName) {

if (isNullEmptyBlank(fileName)) {

try {

String filePath = isExistsFilePath() + "/";// "/mnt/sdcard/image/"+

File file = new File(filePath);

if (file.exists()) {// 判读文件是否存在,存在读取

InputStream fin = new FileInputStream(filePath + fileName);

return readInToStr(fin);

}

} catch (Exception e) {

e.printStackTrace();

}

}

return null;

}

/***************************** SDCard图片 *****************************************************************/

/**

* 保存到SDCard

*

* @param bitmap

* @param imageName

*            图片名

* @return 成功 false

*/

public static boolean saveSDImage(Bitmap bitmap, String imageName) {

if (isNullEmptyBlank(imageName) || bitmap != null) {

try {

File file = new File(isExistsFilePath(), imageName);

if (file.exists()) {// 判读文件是否存在,存在读取

file.delete();

}

OutputStream fos = new FileOutputStream(file);

return saveOuToImage(bitmap, fos);

} catch (IOException e) {

e.printStackTrace();

}

}

return true;

}

/**

* 获取SDCard文件

*

* @param imageName

*            图片名

* @return Bitmap

*/

public static Bitmap readSDImage(String imageName) {

if (isNullEmptyBlank(imageName)) {

String filePath = getSDPath() + CACHE + "/" + imageName;

File file = new File(filePath);

if (file.exists()) {// 判读文件是否存在,存在读取

return BitmapFactory.decodeFile(filePath);

}

}

return null;

}

/***************************** 读取网络数据 *****************************************************************/

/**

* 读取网络数据

*

* @param path

* @return String

*/

public static String getNetFileString(String path) {

try {

URL url = new URL(path);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setConnectTimeout(5 * 1000);

conn.setRequestMethod("GET");

if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {

InputStream inStream = conn.getInputStream();

return readData(inStream, CHARSETNAME);

}

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

private static String readData(InputStream inSream, String charsetName)

throws Exception {

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

byte[] buffer = new byte[4096];

int len = -1;

while ((len = inSream.read(buffer)) != -1) {

outStream.write(buffer, 0, len);

}

byte[] data = outStream.toByteArray();

outStream.close();

inSream.close();

return new String(data, charsetName);

}

/***************************** 网络读取图片byte[] *****************************************************************/

/**

*

* @param path

*            文件路径

* @return byte[] data

*/

public static byte[] getNetImageByte(String path) {

try {

URL url = new URL(path);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setConnectTimeout(5 * 1000);

conn.setRequestMethod("GET");

if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {

InputStream inStream = conn.getInputStream();

return readStream(inStream);

}

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

private static byte[] readStream(InputStream inStream) throws Exception {

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

byte[] buffer = new byte[4096];

int len = 0;

while ((len = inStream.read(buffer)) != -1) {

outStream.write(buffer, 0, len);

}

outStream.close();

inStream.close();

return outStream.toByteArray();

}

/**

* 获取sd卡的缓存路径, 一般在卡中sdCard就是这个目录

*

* @return SDPath

*/

private static String getSDPath() {

File sdDir = null;

boolean sdCardExist = Environment.getExternalStorageState().equals(

android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在

if (sdCardExist) {

sdDir = Environment.getExternalStorageDirectory();// 获取根目录

} else {

Log.e("ERROR", "没有内存卡");

}

return sdDir.toString();

}

/**

* 获取缓存文件夹目录 如果不存在创建 否则则创建文件夹

*

* @return filePath

*/

private static String isExistsFilePath() {

String filePath = getSDPath() + CACHE;

File file = new File(filePath);

if (!file.exists()) {

file.mkdirs();

}

return filePath;

}

private static boolean saveOuToStr(String writeStr, OutputStream os)

throws IOException, UnsupportedEncodingException {

os.write(writeStr.getBytes(CHARSETNAME));

os.flush();

os.close();

return false;

}

private static String readInToStr(InputStream in) throws IOException {

int length = in.available();

byte[] buffer = new byte[length];

in.read(buffer);

in.close();

return EncodingUtils.getString(buffer, CHARSETNAME);

}

private static boolean saveOuToImage(Bitmap bitmap, OutputStream fos)

throws IOException {

bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos);

fos.flush();

fos.close();

return false;

}

/**

* 判断字符串是否为空(包含null与"","    ")

*

* @param str

* @return true 包含null与"","    "

*/

private static boolean isNullEmptyBlank(String str) {

if (str == null || "".equals(str) || "".equals(str.trim())) {

return false;

}

return true;

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-08 23:36:12

万能存储工具类SDCard存储 /data/data/存储 assets存储 raw存储的相关文章

android登录实现,存储数据到/data/data/包名/info.txt

1.一个简单登录界面布局代码如下: @1采用线性布局加相对布局方式 @2线性布局采用垂直排列 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

Android——FileOutputStream与openFileOutput()的区别分析【第一个用于文件存储,第二个用于SD卡存储】【转】

本文实例分析了Android编程中FileOutputStream与openFileOutput()的区别.分享给大家供大家参考,具体如下: openFileOutput() 首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的. public void save() { try { FileOutputStream outStream=this.openFileO

Android中对/data/data/&lt;package name&gt;/files下文件操作

/data/data/<package name>/files /data/data/ 该路径为系统内部存储文件路径,即:/data/data/<package name>/,各路径都是基于你自己的应用<package name>的内部存储路径下. 注:所有内部存储中保存的文件在用户卸载应用的时候会被删除. 一. files 1. Context.getFilesDir(),该方法返回/data/data/<package name>/files的File对

$.data(data , &quot;&quot;)

今天在二次开发的时候,看到源代码的新闻列表是Aajax获取的,点击新闻内容触发编辑,我没有看到新闻Id却能查到信息. 观看$.ajax遍历赋值过程中,$tr("<a>新闻内容</a>").data("data" , obj)绑定了此条新闻的JSOn数据,在编辑时候只要$.data("data") 就能获取到此数组 1.$data的基本语法 data([key],[value]) 在元素上存放或读取数据,返回jQuery对象

存储和加载本地文件(内部存储设备)

Android设备上的所有应用都有一个放置在沙盘中的文件目录,将文件保存到沙盒中可以阻止其他应用的访问. 沙盒目录的全路径为:/data/data/<包名>  用File Explorer查看: 如上图可见,每个应用都在/data/data下有一个以此应用包名命名的文件目录. 而本文就是介绍将文件保存在/data/data/<包名>/files/ 目录下 下面就展示如何在内部存储设备中存储和加载本地文件: 1.创建一个名为 DataStorage的工程 2.准备好布局文件(acti

Android获取文件夹路径 /data/data/

首先内部存储路径为/data/data/youPackageName/,下面讲解的各路径都是基于你自己的应用的内部存储路径下.所有内部存储中保存的文件在用户卸载应用的时候会被删除. 一. files1. Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象.2. Context.openFileInput()与Context.openFileOutput(),只能读取和写入files下的文件,返回的是FileInput

data data文件夹

一. files 1. Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象. 2. Context.openFileInput()与Context.openFileOutput(),只能读取和写入files下的文件,返回的是FileInputStream和FileOutputStream对象.www.2cto.com 3. Context.fileList(),返回files下所有的文件名,返回的是String[]对

AssetsUtils【读取assets、res/raw、./data/data/包名/目录下的文件】

版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 封装了以下功能: 1.读取assets目录下的资源html.文件.图片,将文件复制到SD卡目录中: 2.读取res/raw目录下的文件内容: 3.读写./data/data/包名/下的文件: 效果图 代码分析 最常用的方法:getStringFromAssert(Context mContext, String assetsFilePath)[读取assets目录中的文件字符串] 使用步骤 一.项目组织结构图 注意事项: 1.  导入类

Tair存储引擎之一Leveldb中数据的存储思想

1. Tair ldb简单介绍 1.1 tair非持久化/持久化存储引擎 tair 是淘宝自己开发的一个分布式 key/value 存储引擎. tair 分为持久化和非持久化两种使用方式. 非持久化的 tair 可以看成是一个分布式缓存. 持久化的 tair 将数据存放于磁盘中. 在最新版本的tair trunk中目前实现了以下4种存储引擎. 非持久化:mdb 持久化:fdb.kdb和 ldb 分别基于四种开源的key/value数据库:Memcached.Firebird.Kyoto Cabi